【问题标题】:what is the meaning of the dollar sign after a method name in vb.netvb.net中方法名称后的美元符号是什么意思
【发布时间】:2012-01-10 14:36:20
【问题描述】:

vb.net中方法名后面的美元符号是什么意思

像这样:

Replace$("EG000000", "0", "")

【问题讨论】:

    标签: vb.net vb.net-2010


    【解决方案1】:

    旧类型通知器 - see this

    其他一些旧的:

    & -> Long
    % -> Integer
    # -> Double
    ! -> Single
    @ -> Decimal
    $ -> String
    

    为了向后兼容,VB.Net 中仍然存在...

    【讨论】:

    • 为了完整起见,MSDN Link.
    • 您引用的是类型字符,它使 dim s$ 和 dim s 作为字符串相同。请参阅 Heinzi 的回答。
    • 不正确。 Heinzi 的解释是正确的。
    【解决方案2】:

    在“经典”VB 中,有两个版本的内置字符串函数。我以Left为例:

    • Left(s, length)variant 作为第一个参数并返回一个 variant
    • Left$(s, length)string 作为第一个参数,并返回一个 string

    这种区别在现代 VBA 中仍然存在。

    我怀疑这背后的原因是VBA中的字符串不能是Null(注意Null <> "")。因此,在处理可为空的数据库字段时,您必须使用变体变量。 Variant 变量可以采用任何值,包括所有整数值(字符串、整数等)以及一些特殊值,例如 NullEmptyMissing。非 $ 函数允许您使用变体作为输入并将变体作为输出。例如,Left(Null, ...) 返回Null

    在 VB.NET 中,不再需要这种区别:非 $ 函数的作用与 $ 函数完全相同,保留这些函数只是为了与旧代码向后兼容。

    【讨论】:

    • 加一个 VBA 参考。
    【解决方案3】:

    Heinzi 说什么以及清理字体业务

        Dim s$ = "FooBar" 'dim s as String = "FooBar"
    
        Dim r As String
        Stop
    
        r = Replace$(s, "Bar", "")
        '.Net equivalent
        r = s.Replace("Bar", "")
    

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2017-07-22
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 2018-07-10
      相关资源
      最近更新 更多