VB to C# Functions

后端 未结 14 1083
忘了有多久
忘了有多久 2020-12-02 06:51

Which are the equivalent of the following operators from VB.Net to C#?

  • UBound()
  • LBound()
  • IsNothing()
  • <
14条回答
  •  误落风尘
    2020-12-02 07:12

    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.
    • The VB string functions uses a one based index, while the .NET method uses a zero based index. I.e. 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!
    • The Many classic VB String functions, including 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.
    • You can also pass Nothing to the classic VB Mid() and Replace() functions. Instead of throwing an exception, these will return Nothing.

提交回复
热议问题