VB à C # Fonctions
-
19-09-2019 - |
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 ()
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)
vsyourArray.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 deIIf
parceIIf
é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()
etTrim()
, traitera un argument deNothing
(Null
en c #) comme étant équivalente à une chaîne de longueur nulle. Exécution des méthodes de chaîne surNothing
sera, bien sûr, jeter une exception. - Vous pouvez également passer
Nothing
aux fonctionsMid()
VB classiques etReplace()
. Au lieu de lancer une exception, ceux-ci reviendrontNothing
.
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)