web-dev-qa-db-fra.com

VB en fonctions C #

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

  • Bound ()
  • LBound ()
  • C'est rien()
  • Chr ()
  • Len ()
  • UCase ()
  • LCase ()
  • La gauche()
  • Droite()
  • RTrim ()
  • LTrim ()
  • Réduire()
  • Milieu()
  • Remplacer()
  • Divisé()
  • Joindre()
  • MsgBox ()
  • IIF ()
39
Jonathan Escobedo
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")

Notes

  • yourArray.GetUpperBound(0) vs yourArray.Length: si le tableau est de longueur nulle, GetUpperBound renverra -1, tandis que Length renverra 0. UBound() dans VB.NET renverra -1 pour les tableaux de longueur nulle.
  • Les fonctions de chaîne VB utilisent un index basé sur un, 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 car IIf évalue toujours les deux arguments et ? N'évalue que celui dont il a besoin. Cela pourrait avoir de l'importance s'il y a des effets secondaires de l'évaluation ~ frémissement!
  • Les nombreuses fonctions classiques VB String, y compris Len(), UCase(), LCase(), Right(), RTrim() et Trim() traiteront un argument de Nothing (Null en c #) comme étant équivalent à une chaîne de longueur nulle. Exécution des méthodes de chaîne sur Nothing va, bien sûr, lever une exception.
  • Vous pouvez également passer Nothing aux fonctions classiques VB Mid() et Replace(). Au lieu de lever une exception, celles-ci renverront Nothing.
79
Gavin Miller
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;
4
PMN

Toutes ces fonctions sont des méthodes membres de Microsoft.VisualBasic.Information classe, dans le Microsoft.VisualBasic Assemblage, vous pouvez donc les utiliser directement. Cependant, la plupart d'entre eux ont des équivalents C # ou des équivalents non spécifiques au langage dans les classes de base du framework .NET:

  • UBound (): Array.GetUpperBound
  • LBound (): Array.GetLowerBound
  • C'est rien() : == null
  • Chr (): (char)intValue (distribution)
  • Len (): String.Length
  • UCase (): String.ToUpper
  • LCase (): String.ToLower
  • Gauche (), Droite () et Milieu (): String.Substring (avec différents arguments)
  • RTrim (): String.TrimEnd
  • LTrim (): String.TrimStart
  • Trim (): String.Trim
  • Remplacer (): String.Replace
  • Divisé() : String.Split
  • Join (): String.Join
  • MsgBox (): MessageBox.Show
  • IIF (): condition ? valueIfTrue : valueIfFalse (opérateur conditionnel)

Liens

3
Thomas Levesque

La plupart d'entre elles seraient des méthodes d'instance sur l'objet chaîne qui renvoient la chaîne modifiée.

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

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

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

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

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

2
Tim S. Van Haren

Tout d'abord, la plupart d'entre eux ne sont PAS des opérateurs. Ce sont des fonctions, et les fonctions ne sont incluses dans VB.Net que pour des raisons de compatibilité. Cela signifie que vous ne devez pas non plus les utiliser dans VB.net et utiliser à la place les équivalents fournis par la nouvelle API.

  • Bound () - arrayVar.Length
  • LBound () - obsolète, la borne inférieure est toujours 0 dans un tableau .Net normal
  • IsNothing () - obsolète. Utilisez Is Nothing Dans VB.Net et == null Dans C #
  • Chr () - Convert.ToChar() ou (char)someVar
  • Len () - stringVar.Length Utilisez ceci dans VB aussi
  • Case () - stringVar.ToUpper() utilisez ceci dans VB aussi
  • LCase () - stringVar.ToLower() utilisez ceci dans VB aussi
  • Left () - stringVar.Substring(0, n) utilisez ceci dans VB aussi
  • Right () - stringVar.Substring(stringVar.Length - n) utilisez ceci dans VB aussi
  • RTrim () - stringVar.TrimEnd() utilisez ceci dans VB aussi
  • LTrim () - stringVar.TrimStart() utilisez ceci dans VB aussi
  • Trim () - stringVar.Trim() utilisez ceci dans VB aussi
  • Mid () - stringVar.Substring(n, m) utilisez ceci dans VB aussi
  • Replace () - stringVar.Replace() utilisez ceci dans VB aussi
  • Split () - stringVar.Split() utilisez ceci dans VB aussi
  • Join () - String.Join() utilisez ceci dans VB aussi
  • MsgBox () - MessageBox.Show()
  • IIF () - (condition) ? truepart : falsepart - notez qu'il y a quelques différences, car "?" est un opérateur et non une fonction
2
Joel Coehoorn

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

1
Meta-Knight

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

1
Adam Neal

Un autre...

VB - IsDBNull (valeur)

C # - yourdatarow.IsNull ("columnName")

1
Cylon Cat

Un autre ajout à cela pourrait être IndexOf () fonction pour rechercher 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 );
0
rcp

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

0
RvdK
  • UBound () -> si x est un tableau de chaînes [] par exemple: x.GetUpperBound ();
  • LBound () -> si x est un tableau de chaînes [] par exemple: x.GetLowerBound ();
  • IsNothing () -> if (x == null)
  • Chr () -> char x = (char) 65;
  • Len () -> x.Length ();
  • UCase () -> supposons que x est une chaîne: x.ToUpper ();
  • LCase () -> supposons que x est une chaîne: x.ToLower ();
  • Left () -> supposons que x est une chaîne: x.Substring (0, 10); // 10 premiers caractères
  • Droite () -> supposons que x est une chaîne: x.Substring (x.Length - 10); // 10 derniers caractères
  • RTrim () -> x.TrimEnd ();
  • LTrim () -> x.TrimStart ();
  • Trim () -> x.Trim ();
  • Mid () -> supposons que x est une chaîne: x.Substring ()
  • Replace () -> supposons que x est une chaîne: x.Replace ();
  • Split () -> supposons que x est une chaîne: x.Split ();
  • Join () -> String.Join ();
  • MsgBox () -> MessageBox.Show ();
  • IIF () -> opérateur ternaire (x == true? True-value: false-value);
0
Scott Anderson

En plus des réponses ci-dessus. Soyez prudent en remplaçant 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 String.IsNullrEmpty () (si la situation le permet)

0
Viktor Arsanov

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

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

0
Echilon