Fonctions VB to C #

Quels sont les équivalents des opérateurs suivants de VB.Net à C #?

  • UBound ()
  • LBound ()
  • C’est rien()
  • Chr ()
  • Len ()
  • UCase ()
  • LCase ()
  • La gauche()
  • Droite()
  • RTrim ()
  • LTrim ()
  • Réduire()
  • Milieu()
  • Remplacer()
  • Divisé()
  • Joindre()
  • MsgBox ()
  • IIF ()

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() = "ssortingng".Length UCase() = "ssortingng".ToUpper() LCase() = "ssortingng".ToLower() Left() = "ssortingng".Subssortingng(0, length) Right() = "ssortingng".Subssortingng("ssortingng".Length - desiredLength) RTrim() = "ssortingng".TrimEnd() LTrim() = "ssortingng".TrimStart() Trim() = "ssortingng".Trim() Mid() = "ssortingng".Subssortingng(start, length) Replace() = "ssortingng".Replace() Split() = "ssortingng".Split() Join() = Ssortingng.Join() MsgBox() = MessageBox.Show() IIF() = (boolean_condition ? "true" : "false") 

Remarques

  • yourArray.GetUpperBound(0) vs yourArray.Length : si le tableau a une longueur nulle, GetUpperBound renverra -1, tandis que Length renverra 0. UBound() dans VB.NET renverra -1 pour les tableaux de longueur zéro.
  • Les fonctions de chaîne VB utilisent un index basé sur un, alors que la méthode .NET utilise un index basé sur zéro. Ie Mid("asdf",2,2) correspond à "asdf".SubSsortingng(1,2) .
  • ? IIf pas l’équivalent exact de IIf car IIf évalue toujours les deux arguments, et ? évalue seulement celui dont il a besoin. Cela pourrait avoir une incidence s’il y a des effets secondaires de l’évaluation ~ frisson!
  • Les nombreuses fonctions classiques de VB Ssortingng, y compris Len() , UCase() , LCase() , Right() , RTrim() et Trim() , traiteront un argument de Nothing ( Null in c #) équivalent à un zéro -longueur de chaîne. L’exécution de méthodes ssortingng sur Nothing lancera bien sûr une exception.
  • Vous pouvez également transmettre Nothing aux fonctions classiques VB Mid() et Replace() . Au lieu de lancer une exception, ils ne renverront Nothing .
 UBound() "array".Length LBound() IsNothing(): "object" == null Chr() (char)"N" Len() "ssortingng".Length UCase() "ssortingng".ToUpper() LCase() "ssortingng".ToLower() Left() "ssortingng".Subssortingng(from, to) Right() "ssortingng".Subssortingng(from, to) RTrim() "ssortingng".TrimEnd() LTrim() "ssortingng".TrimStart() Trim() "ssortingng".Trim() Mid() "ssortingng".Subssortingng(from, to) Replace() "ssortingng".Replace() Split() "ssortingng".Split() Join() Ssortingng.Join() MsgBox() MessageBox.Show() IIF() validate ? iftrue : iffalse; 

Toutes ces fonctions sont des méthodes membres de la classe Microsoft.VisualBasic.Information , dans l’assembly Microsoft.VisualBasic , afin que vous puissiez les utiliser directement. Cependant, la plupart d’entre eux ont des équivalents C # ou équivalents non spécifiques au langage dans les classes du framework .NET:

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

Liens

  • Membres du tableau
  • Membres de la chaîne
  • MessageBox.Show
  • opérateur conditionnel

La plupart d’entre elles sont des méthodes d’instance sur l’object chaîne qui renvoient 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();

Tout d’abord, la plupart d’entre eux ne sont PAS des opérateurs. Ce sont des fonctions, et ces fonctions ne sont incluses dans VB.Net que pour des raisons de compatibilité. Cela signifie que vous ne devriez pas non plus les utiliser dans VB.net, mais plutôt utiliser les équivalents fournis par la nouvelle API.

  • UBound ()arrayVar.Length
  • LBound () – obsolète, la limite inférieure est toujours 0 dans un tableau .Net normal
  • IsNothing () – obsolète. Use Is Nothing en VB.Net et == null en C #
  • Chr ()Convert.ToChar() ou (char)someVar
  • Len ()ssortingngVar.Length utilise aussi ceci dans VB
  • UCase ()ssortingngVar.ToUpper() utilise cela aussi dans VB
  • LCase ()ssortingngVar.ToLower() utilise cela aussi en VB
  • Left ()ssortingngVar.Subssortingng(0, n) utilise aussi ceci en VB
  • Right ()ssortingngVar.Subssortingng(ssortingngVar.Length - n) utilise aussi ceci en VB
  • RTrim ()ssortingngVar.TrimEnd() utilise aussi ceci en VB
  • LTrim ()ssortingngVar.TrimStart() utilise aussi ceci en VB
  • Trim ()ssortingngVar.Trim() utilise aussi ceci en VB
  • Mid ()ssortingngVar.Subssortingng(n, m) utilise aussi ceci en VB
  • Replace ()ssortingngVar.Replace() utilise cela aussi dans VB
  • Split ()ssortingngVar.Split() utilise cela aussi dans VB
  • Join ()Ssortingng.Join() utilise cela aussi dans VB
  • MsgBox ()MessageBox.Show()
  • IIF ()(condition) ? truepart : falsepart (condition) ? truepart : falsepart – notez qu’il existe des différences, car “?” est un opérateur et non une fonction

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

Je pense que certaines de ces Mid() telles que Mid() sont toujours disponibles dans le .NET Framework dans l’espace de noms Microsoft.VisualBasic auquel vous pouvez toujours faire référence à partir du code C #.

Un autre…

VB – IsDBNull (valeur)

C # – yourdatarow.IsNull (“nomcolonne”)

Si vous regardez sur MSDN, vous verrez que la plupart du temps, il existe un exemple de code pour les deux langues.

  • UBound () -> si x est un tableau de chaîne [], par exemple: x.GetUpperBound ();
  • LBound () -> si x est un tableau de chaîne [], par exemple: x.GetLowerBound ();
  • IsNothing () -> if (x == null)
  • Chr () -> car x = (car) 65;
  • Len () -> x.Length ();
  • UCase () -> suppose que x est une chaîne: x.ToUpper ();
  • LCase () -> suppose que x est une chaîne: x.ToLower ();
  • Left () -> suppose que x est une chaîne: x.Subssortingng (0, 10); // 10 premiers caractères
  • Right () -> suppose que x est une chaîne: x.Subssortingng (x.Length – 10); // 10 derniers caractères
  • RTrim () -> x.TrimEnd ();
  • LTrim () -> x.TrimStart ();
  • Trim () -> x.Trim ();
  • Mid () -> suppose que x est une chaîne: x.Subssortingng ()
  • Replace () -> suppose que x est une chaîne: x.Replace ();
  • Split () -> suppose que x est une chaîne: x.Split ();
  • Join () -> Ssortingng.Join ();
  • MsgBox () -> MessageBox.Show ();
  • IIF () -> opérateur ternaire (x == true? Valeur vraie: valeur fausse);

Un autre ajout à cela pourrait être la fonction IndexOf () pour trouver une chaîne dans une chaîne

Un exemple ci-dessous …

 ssortingng MainSsortingng = "Ssortingng Manipulation"; ssortingng SearchSsortingng = "pul"; int FirstChr = MainSsortingng.IndexOf(SearchSsortingng); //SHOWS START POSITION OF STRING MessageBox.Show("Found at : " + FirstChr ); 

En plus des réponses ci-dessus. Faites attention à remplacer Len () -> x.Length. VB Len () vous permet de passer null, mais en c # vous obtiendrez une exception. Parfois, il serait préférable d’utiliser Ssortingng.IsNullrEmpty () (si la situation le permet).

La fonction d’espace est absente de la liste de tous les autres:

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