Announcement

Collapse
No announcement yet.

vb.net -> c#

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • vb.net -> c#

    hallo, ich bin gerade dabei vb.net - code in c# zu portieren. in vb.bet gibt es ja bekanntlich verschiedene syntaxs, die in c# nicht direkt abbildbar sind.

    Darunter auch folgende:

    <PRE>Public <B>Event RuleBroken</B>(ByVal target As Object, ByVal rule As BrokenRuleArgs)</PRE>

    hier wird gleichzeitig ein Event und eine Funktion deklariert. dies ist ja in c# nicht möglich, wie kann ich aber trotzdem diese funktion implementieren ?

    Eine weitere Funktion ist mir auch nicht klar, wie ich sie in c# schreiben könnte:

    <PRE>If Len(<B>CallByName</B>(target, e.PropertyName, CallType.Get)) </PRE>

    hier wird eine klasse übergeben (target) und ein PorpertyName der Klasse übergeben, die dann dynamisch per Reflection aufgerufer wird.
    ich tippe mal auf class.getMember().Invoke(...), bin mir aber auch nicht ganz sicher.

    vielleicht kann mir jemand helfen....vielen dank

  • #2
    Public Event RuleBroken(ByVal target As Object, ByVal rule As BrokenRuleArgs)

    C#
    public delegate void RuleBrokenEventHandler(object target, BrokenRuleArgs rule);
    public event RuleBrokenEventHandler RuleBroken;

    Der Befehl Event in VB.NET ist eine Kombination aus Delegate und Event selbst. Das geht in C# nicht, hier musst du den Delegaten selbst definieren!

    Die IF Abfrage in VB.NET macht so keinen Sinn da Len die Anzahl der Zeichen in einem String zurückgibt. Hier wird auf einen boolschen Wert geprüft. Generell wäre es so möglich:

    Die Schreiweise der CallByName Methode wirst du so nicht direkt abbilden können. Hier mal die Erklärung was CallByName macht:

    CallByName führt eine Methode für ein Objekt aus oder legt eine Eigenschaft für ein Objekt fest bzw. gibt eine Eigenschaft für ein Objekt zurück.

    Diese Funktionalität musst du in C# natürlich selbst schreiben da CallByName aus Microsoft.VisualBasic kommt (wer verwendet denn sowas ;P SCNR).

    Hier ne kleine Hilfe: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctcallbynamefunction.asp

    - ren&#233

    Comment

    Working...
    X