VB zu C # Funktionen
-
19-09-2019 - |
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 ()
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)
vsyourArray.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 ÄquivalentIIf
weilIIf
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()
undTrim()
, werden ein Argument desNothing
(Null
in C #) behandeln, als auf eine Null-Zeichenfolge der Länge äquivalent zu sein. Laufende String-Methoden aufNothing
wird, natürlich, eine Ausnahme aus. - Sie können auch
Nothing
die klassischen VBMid()
undReplace()
Funktionen übergeben. Statt eine Ausnahme zu werfen, werden dieseNothing
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)