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() = "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. 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! 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. 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:
Array.GetUpperBound
Array.GetLowerBound
== null
(char)intValue
(cast) Ssortingng.Length
Ssortingng.ToUpper
Ssortingng.ToLower
Ssortingng.Subssortingng
(avec des arguments différents) Ssortingng.TrimEnd
Ssortingng.TrimStart
Ssortingng.Trim
Ssortingng.Replace
Ssortingng.Split
Ssortingng.Join
MessageBox.Show
condition ? valueIfTrue : valueIfFalse
condition ? valueIfTrue : valueIfFalse
(opérateur conditionnel) Liens
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.
arrayVar.Length
Is Nothing
en VB.Net et == null
en C # Convert.ToChar()
ou (char)someVar
ssortingngVar.Length
utilise aussi ceci dans VB ssortingngVar.ToUpper()
utilise cela aussi dans VB ssortingngVar.ToLower()
utilise cela aussi en VB ssortingngVar.Subssortingng(0, n)
utilise aussi ceci en VB ssortingngVar.Subssortingng(ssortingngVar.Length - n)
utilise aussi ceci en VB ssortingngVar.TrimEnd()
utilise aussi ceci en VB ssortingngVar.TrimStart()
utilise aussi ceci en VB ssortingngVar.Trim()
utilise aussi ceci en VB ssortingngVar.Subssortingng(n, m)
utilise aussi ceci en VB ssortingngVar.Replace()
utilise cela aussi dans VB ssortingngVar.Split()
utilise cela aussi dans VB Ssortingng.Join()
utilise cela aussi dans VB MessageBox.Show()
(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.
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)