Quels sont les équivalents des opérateurs suivants de VB.Net à C #?
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.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! 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.Nothing
aux fonctions classiques VB Mid()
et Replace()
. Au lieu de lever une exception, celles-ci renverront Nothing
.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 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:
Array.GetUpperBound
Array.GetLowerBound
== null
(char)intValue
(distribution)String.Length
String.ToUpper
String.ToLower
String.Substring
(avec différents arguments)String.TrimEnd
String.TrimStart
String.Trim
String.Replace
String.Split
String.Join
MessageBox.Show
condition ? valueIfTrue : valueIfFalse
(opérateur conditionnel)Liens
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)
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 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.
arrayVar.Length
Is Nothing
Dans VB.Net et == null
Dans C #Convert.ToChar()
ou (char)someVar
stringVar.Length
Utilisez ceci dans VB aussistringVar.ToUpper()
utilisez ceci dans VB aussistringVar.ToLower()
utilisez ceci dans VB aussistringVar.Substring(0, n)
utilisez ceci dans VB aussistringVar.Substring(stringVar.Length - n)
utilisez ceci dans VB aussistringVar.TrimEnd()
utilisez ceci dans VB aussistringVar.TrimStart()
utilisez ceci dans VB aussistringVar.Trim()
utilisez ceci dans VB aussistringVar.Substring(n, m)
utilisez ceci dans VB aussistringVar.Replace()
utilisez ceci dans VB aussistringVar.Split()
utilisez ceci dans VB aussiString.Join()
utilisez ceci dans VB aussiMessageBox.Show()
(condition) ? truepart : falsepart
- notez qu'il y a quelques différences, car "?" est un opérateur et non une fonctionVous trouverez la conversion de plusieurs de ces fonctions sur cette page wikipedia .
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 #.
Un autre...
VB - IsDBNull (valeur)
C # - yourdatarow.IsNull ("columnName")
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 );
Si vous regardez sur MSDN, vous voyez que la plupart du temps, il existe des exemples de code pour les deux langues.
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)
La fonction espace est absente de la liste de tous les autres:
Space(16) -> new String(" ", 16)