Какие из следующих операторов 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")
Примечания
yourArray.GetUpperBound(0)
yourArray.Length
UBound()
Mid("asdf",2,2)
"asdf".SubString(1,2)
?
IIf
Len()
UCase()
LCase()
Right()
RTrim()
Trim()
Nothing
Null
Mid()
Replace()
Все эти функции являются методами-членами класса Microsoft.VisualBasic.Information в сборке Microsoft.VisualBasic, поэтому вы можете использовать их напрямую. Однако большинство из них имеют эквиваленты C # или не языковые эквиваленты в базовых классах платформы .NET:
Microsoft.VisualBasic.Information
Microsoft.VisualBasic
Array.GetUpperBound
Array.GetLowerBound
== null
(char)intValue
String.Length
String.ToUpper
String.ToLower
String.Substring
String.TrimEnd
String.TrimStart
String.Trim
String.Replace
String.Split
String.Join
MessageBox.Show
condition ? valueIfTrue : valueIfFalse
Ссылки
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;
Прежде всего, большинство из них НЕ являются операторами. Они являются функциями, и эти функции включены только в VB.Net по причинам совместимости. Это означает, что вы не должны использовать их в VB.net, а вместо этого использовать эквиваленты, предоставляемые новым API.
arrayVar.Length
Is Nothing
Convert.ToChar()
(char)someVar
stringVar.Length
stringVar.ToUpper()
stringVar.ToLower()
stringVar.Substring(0, n)
stringVar.Substring(stringVar.Length - n)
stringVar.TrimEnd()
stringVar.TrimStart()
stringVar.Trim()
stringVar.Substring(n, m)
stringVar.Replace()
stringVar.Split()
String.Join()
MessageBox.Show()
(condition) ? truepart : falsepart
IIf(test, trueval, falseval) >> (test ? trueval : falseval);
IIf(test, trueval, falseval)
(test ? trueval : falseval);
IsNothing(obj) >> (obj == null);
IsNothing(obj)
(obj == null);
UCase(str) >> str.ToUpper();
UCase(str)
str.ToUpper();
LCase(str) >> str.ToLower();
LCase(str)
str.ToLower();
Большинство из них будут методами экземпляра в строковом объекте, которые возвращают измененную строку.
MsgBox vs. MessageBox.Show(..)
IIF vs. (expression?returnValueIfTrue:returnValueElse)
Еще один ...
VB - IsDBNull (значение)
C # - yourdatarow.IsNull ("columnName")
Я считаю, что некоторые из них, такие как Mid(), все еще доступны в .NET Framework в пространстве имен Microsoft.VisualBasic, на которое вы все равно можете ссылаться из кода C #.
Вы найдете преобразование для многих из этих функций на этой странице википедии .
Функция пробела отсутствует в списке всех остальных:
Space(16) -> new String(" ", 16)