Which are the equivalent of the following operators from VB.Net to 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;
In addition to the answers above. Be carefull with replacing Len() -> x.Length. VB Len() allows you to pass null, but in c# you will get an exception. Sometimes it would be better to use String.IsNullrEmpty() (If the situation allows)
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
: if the array is zero-length, GetUpperBound will return -1, while Length will return 0. UBound()
in VB.NET will return -1 for zero-length arrays.Mid("asdf",2,2)
corresponds to "asdf".SubString(1,2)
.?
is not the exact equivalent of IIf
because IIf
always evaluates both arguments, and ?
only evaluates the one it needs. This could matter if there are side effects of the evaluation ~ shudder!Len()
, UCase()
, LCase()
, Right()
, RTrim()
, and Trim()
, will treat an argument of Nothing
(Null
in c#) as being equivalent to a zero-length string. Running string methods on Nothing
will, of course, throw an exception.Nothing
to the classic VB Mid()
and Replace()
functions. Instead of throwing an exception, these will return Nothing
.Most of these would be instance methods on the string object that return the modified string.
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();
You'll find the conversion for many of these functions on this wikipedia page.