webForumDet fria alternativet

Event i usercontrol, översättning v.net -> c#

.NET

6 svar · 315 visningar · startad av Jon

Medlem sedan juli 20011 304 inlägg
Frågan#1

Hur blir detta

Public Event ItemClick(ByRef Item As MyItem)

Public Sub RaisePostBackEvent(ByVal eventArgument As String)Implements IPostBackEventHandler.RaisePostBackEvent
        If IsNumeric(eventArgument) Then
            RaiseEvent ItemClick(Items(eventArgument))
        End If
End Sub

när man översätter det till c#? Får inte till det...

Medlem sedan juni 20019 024 inlägg
#2

Ska försöka mig på lite c# då. Rätta mina fel, c#-gurus (och ge mig tips på annat än nuvarande IsNumeric-varianten). ;)

public event ItemClick(ref MyItem Item);

public void RaisePostBackEvent(string eventArgument) : IPostBackEventHandler.RaisePostBackEvent {
        if Microsoft.VisualBasic.IsNumeric(eventArgument) {
            event ItemClick(Items(eventArgument));
        }
}

Till min hjälp:
Language Syntaxes of VB.NET and C#

Medlem sedan juli 20011 304 inlägg
#3

Ok. jag har nåt i den här stilen hittills...

public event EventHandler ItemClick;

void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
		{
			if(IsNumeric(eventArgument))
				ItemClick(this, Items[eventArgument]);

			
			
		}

private bool IsNumeric(string inputData)
		{
			try
			{
				int.Parse(inputData);
				return true;
			}
			catch
			{
				return false;
			}
		}

:)

Medlem sedan juli 20011 304 inlägg
#4

Kom på ett bra sätt att göra en IsNumeric:

public static Regex _isNumber = new Regex(@"^\d+$");

public static bool IsNumeric(string inputData)
		{
			Match m = _isNumber.Match(inputData);
			return m.Success;
		}

:)

Medlem sedan okt. 20005 273 inlägg
#5

Om du vet att talet inte kommer att innehålla några decimaler kan du använda

[red]
public static bool IsNumber(char c);
public static bool IsNumber(string s, int index);
[/red]

mv icaaq

Medlem sedan maj 20012 812 inlägg
#6

Det finns en statisk funktion på double som kollar om ett sträng kan omvandlas till en sträng, man kan även skicka in föredefinerade "patterns" för att minska ner antalet möjligheter (om man nu vill det)

Kommer inte ihåg nu vad funktionen heter, men skriva bara double. och använd intellisens.

- M

Medlem sedan juli 20011 304 inlägg
#7

Jo visst finns det massa bra sätt med isnumeric men nu var det inte riktigt det som var problemet ;)

Nåja jag tror mig ha löst det. Gjorde en lösning med delegates men jag får något annat fel och vet inte riktigt hur jag ska debugga som jag frågade om i en ny tråd.

Tack ändå!

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)