Frage

das entspricht der folgenden Betreiber von VB.Net zu C # sind?

  • UBound ()
  • LBound ()
  • IsNothing ()
  • Chr ()
  • Len ()
  • UCase ()
  • LCase ()
  • Left ()
  • Right ()
  • RTrim ()
  • LTrim ()
  • Trim ()
  • Mid ()
  • Ersetzen ()
  • Split ()
  • Join ()
  • MsgBox ()
  • IIF ()
War es hilfreich?

Lösung

VB             C#

UBound()     = yourArray.GetUpperBound(0) or yourArray.Length for one-dimesional arrays
LBound()     = yourArray.GetLowerBound(0)
IsNothing()  = Object.ReferenceEquals(obj,null)
Chr()        = Convert.ToChar()
Len()        = "string".Length
UCase()      = "string".ToUpper()
LCase()      = "string".ToLower()
Left()       = "string".Substring(0, length)
Right()      = "string".Substring("string".Length - desiredLength)
RTrim()      = "string".TrimEnd()
LTrim()      = "string".TrimStart()
Trim()       = "string".Trim()
Mid()        = "string".Substring(start, length)
Replace()    = "string".Replace()
Split()      = "string".Split()
Join()       = String.Join()
MsgBox()     = MessageBox.Show()
IIF()        = (boolean_condition ? "true" : "false")

Notizen

  • yourArray.GetUpperBound(0) vs yourArray.Length. Wenn das Array der Länge null, GetUpperBound wird -1 zurück, während Länge 0. UBound() in VB.NET zurück kehrt -1 für Null-Länge-Arrays
  • Die VB-String-Funktionen verwenden einen eine Basis-Index, während die .NET-Methode einen Null basierenden Index verwendet. D. h Mid("asdf",2,2) entspricht "asdf".SubString(1,2).
  • ist ? nicht die genaue Äquivalent IIf weil IIf immer auswertet beide Argumente und ? nur den einen wertet es braucht. Dies könnte egal, ob es Nebenwirkungen der Auswertung ~ Schauder!
  • Die viele klassischen VB String Funktionen, einschließlich Len(), UCase(), LCase(), Right(), RTrim() und Trim(), werden ein Argument des Nothing (Null in C #) behandeln, als auf eine Null-Zeichenfolge der Länge äquivalent zu sein. Laufende String-Methoden auf Nothing wird, natürlich, eine Ausnahme aus.
  • Sie können auch Nothing die klassischen VB Mid() und Replace() Funktionen übergeben. Statt eine Ausnahme zu werfen, werden diese Nothing zurück.

Andere Tipps

UBound()  "array".Length
LBound()
IsNothing(): "object" == null
Chr()     (char)"N"
Len()     "string".Length
UCase()   "string".ToUpper()
LCase()   "string".ToLower()
Left()    "string".Substring(from, to)
Right()   "string".Substring(from, to)
RTrim()   "string".TrimEnd()
LTrim()   "string".TrimStart()
Trim()    "string".Trim()
Mid()     "string".Substring(from, to)
Replace() "string".Replace()
Split()   "string".Split()
Join()    String.Join()
MsgBox()  MessageBox.Show()
IIF()     validate ? iftrue : iffalse;

Alle diese Funktionen sind Mitglied Methoden der Microsoft.VisualBasic.Information Klasse, in der Microsoft.VisualBasic Montage, damit Sie sie direkt nutzen können. die meisten von ihnen haben jedoch C # Äquivalente oder nicht sprachspezifische Äquivalente in Kern .NET Framework-Klassen:

  • UBound (): Array.GetUpperBound
  • LBound (): Array.GetLowerBound
  • IsNothing (): == null
  • Chr (): (char)intValue (cast)
  • Len (): String.Length
  • UCase (): String.ToUpper
  • LCase (): String.ToLower
  • Left (), Right () und Mid (): String.Substring (mit verschiedenen Argumenten)
  • RTrim (): String.TrimEnd
  • LTrim (): String.TrimStart
  • Trim (): String.Trim
  • Ersetzen (): String.Replace
  • Split (): String.Split
  • Join (): String.Join
  • MsgBox (): MessageBox.Show
  • IIF (): condition ? valueIfTrue : valueIfFalse (Konditionaloperator)

Links

Die meisten von ihnen würden Instanzmethoden auf dem String-Objekt sein, das die geänderte Zeichenfolge zurück.

MsgBox vs. MessageBox.Show(..)
IIF vs. (expression?returnValueIfTrue:returnValueElse)

IIf(test, trueval, falseval) >> (test ? trueval : falseval);

IsNothing(obj) >> (obj == null);

UCase(str) >> str.ToUpper();

LCase(str) >> str.ToLower();

Vor allem die meisten von denen sind NICHT Operatoren. Sie sind Funktionen und die Funktionen sind nur in VB.Net aus Kompatibilitätsgründen enthalten. Das heißt, sollten Sie sie nicht benutzen in VB.net entweder, und stattdessen die von der neuen API bereitgestellt Äquivalente verwenden.

  • UBound () - arrayVar.Length
  • LBound () - veraltet, untere Grenze ist immer 0 in einem normalen .Net Array
  • IsNothing () - obsolet. Verwenden Is Nothing in VB.Net und == null in C #
  • Chr () - Convert.ToChar() oder (char)someVar
  • Len () - stringVar.Length verwenden diese in VB zu
  • UCase () - stringVar.ToUpper() verwenden diese in VB zu
  • LCase () - stringVar.ToLower() verwenden diese in VB zu
  • Left () - stringVar.Substring(0, n) verwenden diese in VB zu
  • Right () - stringVar.Substring(stringVar.Length - n) verwenden diese in VB zu
  • RTrim () - stringVar.TrimEnd() verwenden diese in VB zu
  • LTrim () - stringVar.TrimStart() verwenden diese in VB zu
  • Trim () - stringVar.Trim() verwenden diese in VB zu
  • Mid () - stringVar.Substring(n, m) verwenden diese in VB zu
  • Replace () - stringVar.Replace() verwenden diese in VB zu
  • Split () - stringVar.Split() verwenden diese in VB zu
  • Join () - String.Join() Verwendung dieses in VB zu
  • MsgBox () - MessageBox.Show()
  • IIF () - (condition) ? truepart : falsepart - "?" Zur Kenntnis, dass es einige Unterschiede gibt, weil ist ein Operator und nicht eine Funktion

Sie werden die Konvertierung für viele dieser Funktionen auf dieser Wikipedia-Seite finden .

Ich glaube, einige von ihnen wie Mid() noch verfügbar sind in .NET Framework in der Microsoft.VisualBasic Namespace den Sie noch Bezug von C # -Code.

Ein anderes ...

VB - IsDBNull (Wert)

C # - yourdatarow.IsNull ( "column")

Wenn Sie auf MSDN schauen Sie sehen, dass die meiste Zeit gibt es Beispielcode für beide Sprachen.

  • UBound () -> wenn x ist ein Array von String [] Beispiel: x.GetUpperBound ();
  • LBound () -> wenn x ist ein Array von String [] Beispiel: x.GetLowerBound ();
  • IsNothing () -> if (x == null)
  • Chr () -> char x = (char) 65;
  • Len () -> x.Length ();
  • UCase () -> annehmen x ist ein String: x.ToUpper ();
  • LCase () -> annehmen x ist ein String: x.ToLower ();
  • Left () -> annehmen x ist ein String: x.Substring (0, 10); // ersten 10 Zeichen
  • Right () -> annehmen x ist ein String: x.Substring (x.Length - 10); // letzten 10 Zeichen
  • RTrim () -> x.TrimEnd ();
  • LTrim () -> x.TrimStart ();
  • Trim () -> x.Trim ();
  • Mid () -> annehmen x ist ein String: x.Substring ()
  • Ersetzen () -> annehmen x ist ein String: x.Replace ();
  • Split () -> annehmen x ist ein String: x.Split ();
  • Join () -> String.Join ();
  • MsgBox () -> MessageBox.Show ();
  • IIF () -> ternärer Operator (x == true true-Wert:? False-Wert);

Ein weiteres Zusätzlich dazu könnte IndexOf () Funktion String finden innerhalb Zeichenfolge

Ein Beispiel unter ...

string MainString = "String Manipulation"; 
string SearchString = "pul"; 
int FirstChr = MainString.IndexOf(SearchString); 
//SHOWS START POSITION OF STRING 
MessageBox.Show("Found at : " + FirstChr );

Zusätzlich zu den Antworten oben. Seien Sie vorsichtig mit dem Ersetzen Len () -> x.Length. VB Len () erlaubt es null zu passieren, aber in c # erhalten Sie eine Ausnahme erhalten. Manchmal wäre es besser, String.IsNullrEmpty () zu verwenden (wenn es die Situation erlaubt)

Der Raum Funktion fehlt allen anderen Liste:

Space(16) -> new String(" ", 16)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top