Quels sont les opérateurs suivants de VB.Net à C#?Fonctions VB à C#
- UBound()
- LBound()
- IsNothing()
- Chr()
- Len()
- UCase()
- LCase()
- Gauche()
- droit()
- RTrim()
- LTrim()
- trim()
- Mid()
- Remplacer()
- de Split()
- join()
- MsgBox()
- IIF()
Quels sont les opérateurs suivants de VB.Net à C#?Fonctions VB à 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")
Remarques
yourArray.GetUpperBound(0)
vs yourArray.Length
: si le tableau est de longueur nulle, GetUpperBound retourne -1, tandis que Length retourne 0. UBound()
dans VB.NET retournera -1 pour zéro tableaux de longueur.Mid("asdf",2,2)
correspond à "asdf".SubString(1,2)
.?
est pas l'équivalent exact de IIf
parce IIf
Evalue toujours les deux arguments et ?
évalue que celui dont il a besoin. Cela pourrait avoir de l'importance s'il y a des effets secondaires de l'évaluation ~ shudder!Len()
, UCase()
, LCase()
, Right()
, RTrim()
et Trim()
, traitera un argument de Nothing
(Null
en C#) comme étant équivalente à une chaîne de longueur nulle. Exécuter des méthodes de chaîne sur Nothing
va, bien sûr, lancer une exception.Nothing
aux fonctions classiques VB Mid()
et Replace()
. Au lieu de lancer une exception, ils renverront Nothing
.C'est CW donc n'hésitez pas à corriger/modifier/ajouter –
Faites attention, et vérifiez que vous n'avez pas piétiné les modifications de quelqu'un d'autre – ChrisF
Je suppose que vous avez inversé UBound et LBound, mais je ne connais pas VB. –
La plupart d'entre elles seraient des méthodes d'instance sur l'objet chaîne renvoyant 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();
Vous trouverez la conversion pour un grand nombre de ces fonctions sur this wikipedia page.
Si vous regardez vous voyez sur MSDN La plupart du temps Qu'il y ait des exemples de code pour les deux langues.
Je crois comme Mid()
Certains d'entre eux sont encore disponibles dans le .NET Framework dans l'espace de noms Microsoft.VisualBasic vous pouvez toujours référence qui à partir du code C#.
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;
"array" .Length est réellement UBound + 1 ... –
tout 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 les équivalents, utilisez plutôt la nouvelle API fournie par.
arrayVar.Length
Is Nothing
dans VB.Net et == null
en C#Convert.ToChar()
ou (char)someVar
stringVar.Length
utiliser dans VB tropstringVar.ToUpper()
utiliser dans VB tropstringVar.ToLower()
l'utiliser aussi dans VBstringVar.Substring(0, n)
utiliser dans VB tropstringVar.Substring(stringVar.Length - n)
utiliser dans VB tropstringVar.TrimEnd()
utiliser dans VB tropstringVar.TrimStart()
aussi dans VBstringVar.Trim()
utiliser dans VB tropstringVar.Substring(n, m)
utiliser dans VB tropstringVar.Replace()
utiliser dans VB tropstringVar.Split()
utiliser aussi dans VBString.Join()
utiliser dans VB tropMessageBox.Show()
(condition) ? truepart : falsepart
- "?" Noter qu'il ya des différences, parce que est un opérateur et non pas une fonctionarrayVar.Length est en fait UBound + 1 ... –
@Thomas: cela dépend de la façon dont vous définissez Option Base dans vb ancien. –
La limite inférieure pour les tableaux retournés par les appels COM peut ne pas être 0. – Govert
Toutes ces fonctions sont des méthodes membres de la classe Microsoft.VisualBasic.Information
, dans l'assemblage 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:
Array.GetUpperBound
Array.GetLowerBound
== null
(char)intValue
(cast)String.Length
String.ToUpper
String.ToLower
String.Substring
(avec des arguments différents)String.TrimEnd
String.TrimStart
String.Trim
String.Replace
String.Split
String.Join
MessageBox.Show
condition ? valueIfTrue : valueIfFalse
(opérateur conditionnel)Liens
... Un autre
VB - IsDBNull (valeur)
C# - yourdatarow.IsNull ("columnName")
Encore plus de cela pourrait être IndexOf() Fonction 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 au dessus. Attention à remplacer Len() -> x.Length. VB Len() vous permet de passer null, mais dans C# vous obtiendrez une exception. Parfois, il serait 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)
Ce sont vraiment survivances de VB6 de toute façon - en VB.NET vous devez utiliser les méthodes des objets String ou Array, par exemple String.TrimLeft, String.ToUpper et Array.GetUpperBound. Et bien sûr MessageBox.Show – MartW
Juste pour information, ils ne sont pas vraiment des opérateurs "VB.NET", il y a une bibliothèque de compatibilité incluse dans VB.NET (que vous pourriez choisir d'utiliser en C# si vous le vouliez, ajoutez simplement la référence et l'utilisation) qui portent ces fonctions sur VB.OLD - donc si l'on voulait être vraiment pédant ... – Murph
Juste un petit nit-pick: ce sont toutes des fonctions. ** Aucun ** d'entre eux est un opérateur. –