Question

Quelles sont l'équivalent des opérateurs suivants de VB.Net à C #?

  • UBound ()
  • LBound ()
  • IsNothing ()
  • Chr ()
  • Len ()
  • UCase ()
  • LCase ()
  • Gauche ()
  • Right ()
  • RTrim ()
  • LTrim ()
  • trim ()
  • Mid ()
  • Remplacer ()
  • split ()
  • Inscrivez-vous ()
  • MsgBox ()
  • IIF ()
Était-ce utile?

La solution

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")

Remarques

  • yourArray.GetUpperBound(0) vs yourArray.Length: si le tableau est de longueur nulle, GetUpperBound retourne -1, tandis que Length retourne 0. UBound() dans VB.NET retournera -1 pour les tableaux de longueur nulle
  • .
  • Les fonctions de chaîne VB utilise un index de base, tandis que la méthode .NET utilise un index basé sur zéro. C'est à dire. Mid("asdf",2,2) correspond à "asdf".SubString(1,2).
  • ? n'est pas l'équivalent exact de IIf parce IIf évalue toujours à la fois arguments et ? évalue que celui dont il a besoin. Cela pourrait peu importe s'il y a des effets secondaires de l'évaluation ~ frissonner!
  • Les nombreuses fonctions de chaîne VB classique, y compris Len(), UCase(), LCase(), Right(), RTrim() et Trim(), traitera un argument de Nothing (Null en c #) comme étant équivalente à une chaîne de longueur nulle. Exécution des méthodes de chaîne sur Nothing sera, bien sûr, jeter une exception.
  • Vous pouvez également passer Nothing aux fonctions Mid() VB classiques et Replace(). Au lieu de lancer une exception, ceux-ci reviendront Nothing.

Autres conseils

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;

Toutes ces fonctions sont des méthodes membres de la classe Microsoft.VisualBasic.Information, dans l'ensemble de Microsoft.VisualBasic, de sorte que vous pouvez les utiliser directement. Cependant, la plupart d'entre eux ont C # équivalents, ou équivalents spécifiques non linguistiques dans le noyau des classes .NET Framework:

  • UBound (): Array.GetUpperBound
  • LBound (): Array.GetLowerBound
  • IsNothing (): == null
  • Chr (): (char)intValue (cast)
  • Len (): String.Length
  • UCase (): String.ToUpper
  • LCase (): String.ToLower
  • Gauche (), droit () et Mid (): String.Substring (avec des arguments différents)
  • RTrim (): String.TrimEnd
  • LTrim (): String.TrimStart
  • trim (): String.Trim
  • Remplacer (): String.Replace
  • split (): String.Split
  • Join (): String.Join
  • MsgBox (): MessageBox.Show
  • IIF (): condition ? valueIfTrue : valueIfFalse (opérateur conditionnel)

Liens

La plupart de ces méthodes serait d'exemple sur l'objet chaîne qui renvoie la chaîne modifiée.

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();

D'abord, la plupart des personnes ne sont PAS les opérateurs. Ils sont des fonctions, et les fonctions ne sont incluses dans VB.Net pour des raisons de compatibilité. Cela signifie que vous ne devriez pas les utiliser dans VB.net soit, et d'utiliser plutôt les équivalents fournis par la nouvelle API.

  • UBound () - arrayVar.Length
  • LBound () - obsolète, minoration est toujours 0 dans un tableau .Net normale
  • IsNothing () - obsolète. Utilisez Is Nothing en VB.Net et == null en C #
  • Chr () - Convert.ToChar() ou (char)someVar
  • Len () - stringVar.Length utiliser dans VB trop
  • UCase () - stringVar.ToUpper() utiliser dans VB trop
  • LCase () - stringVar.ToLower() utiliser dans VB trop
  • Gauche () - stringVar.Substring(0, n) utiliser dans VB trop
  • Right () - stringVar.Substring(stringVar.Length - n) utiliser dans VB trop
  • RTrim () - stringVar.TrimEnd() utiliser dans VB trop
  • LTrim () - stringVar.TrimStart() utiliser dans VB trop
  • Trim () - stringVar.Trim() utiliser dans VB trop
  • Mid () - stringVar.Substring(n, m) utiliser dans VB trop
  • Remplacer () - stringVar.Replace() utiliser dans VB trop
  • split () - stringVar.Split() utiliser dans VB trop
  • Inscrivez-vous () - String.Join() utiliser dans VB trop
  • MsgBox () - MessageBox.Show()
  • IIF () - (condition) ? truepart : falsepart - "?" Noter qu'il ya des différences, parce que est un opérateur et non une fonction

Vous trouverez la conversion pour bon nombre de ces fonctions sur cette page wikipedia .

Je crois que certains d'entre eux comme Mid() sont encore disponibles dans le .NET Framework dans l'espace de noms Microsoft.VisualBasic que vous pouvez toujours faire référence à partir du code C #.

Un autre ...

VB - IsDBNull (valeur)

C # - yourdatarow.IsNull ( "columnName")

Si vous regardez sur MSDN vous voyez que la plupart du temps il y a des exemples de code pour les deux langues.

  • UBound () -> si x est un tableau de string [] par exemple: x.GetUpperBound ();
  • LBound () -> si x est un tableau de string [] par exemple: x.GetLowerBound ();
  • IsNothing () -> if (x == NULL)
  • Chr () -> char x = (char) 65;
  • Len () -> x.length ();
  • UCase () -> prendre x est une chaîne: x.ToUpper ();
  • LCase () -> prendre x est une chaîne: x.ToLower ();
  • gauche () -> prendre x est une chaîne: x.Substring (0, 10); // 10 premiers caractères
  • Right () -> x assumer est une chaîne: x.Substring (x.length - 10); // 10 derniers caractères
  • RTrim () -> x.TrimEnd ();
  • LTrim () -> x.TrimStart ();
  • Trim () -> x.Trim ();
  • Mid () -> x assumer est une chaîne: x.Substring ()
  • Remplacer () -> x assumer est une chaîne: x.Replace ();
  • split () -> x assumer est une chaîne: x.Split ();
  • Rejoindre () -> String.Join ();
  • MsgBox () -> MessageBox.Show ();
  • IIF () -> opérateur ternaire (x == true true valeur: valeur false);

Encore plus de cela pourrait être IndexOf () fonction pour trouver une chaîne dans la chaîne

Un exemple ci-dessous ...

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

En plus des réponses ci-dessus. Soyez prudent avec le remplacement de Len () -> x.length. VB Len () vous permet de passer null, mais c # vous obtiendrez une exception. il serait parfois préférable d'utiliser String.IsNullrEmpty () (Si la situation le permet)

La fonction de l'espace est absent de la liste de tout le monde:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top