vb.net中方法名称后的美元符号是啥意思

Posted

技术标签:

【中文标题】vb.net中方法名称后的美元符号是啥意思【英文标题】: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", "")

【问题讨论】:

【参考方案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 作为第一个参数并返回一个 variantLeft$(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", "")

【讨论】:

以上是关于vb.net中方法名称后的美元符号是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

在 IntelliJ IDEA 中调试 Java 期间生成的变量名称中的美元符号是啥意思?是闭包吗?

java基础知识之一:命名规则(包名类名变量名方法名)

IDEA获取全路径类名加方法名的快捷键

System.ArgumentOutOfRangeException 是啥意思? (vb.net)

正则表达式中方括号“[]”内的浮点范围是啥意思? [复制]

这个 VB.NET 错误是啥意思? '你调用的对象是空的。' [复制]