【发布时间】:2014-06-25 14:26:59
【问题描述】:
请看下面的代码:
Dim str1 As String="Test"
Dim int1 As Integer = 1
Dim str2 = str1 & int1
应该在连接之前将 int1 转换为字符串还是没有区别?
我最近在 VB.NET 应用程序中打开了 OPTION STRICT
【问题讨论】:
-
您为什么不尝试找出答案? :)
标签: vb.net
请看下面的代码:
Dim str1 As String="Test"
Dim int1 As Integer = 1
Dim str2 = str1 & int1
应该在连接之前将 int1 转换为字符串还是没有区别?
我最近在 VB.NET 应用程序中打开了 OPTION STRICT
【问题讨论】:
标签: vb.net
见String manipulation with & or + in VB.NET。
使用 & 运算符表示您打算连接字符串, 而 + 运算符表示您打算添加数字。使用 & 运算符会将运算的两边都转换为字符串。
& 总是返回 String。
【讨论】:
这是一个非常糟糕的问题,但我还是会回答。结果是:不,不需要强制转换。在您的情况下,str2 将是 Test1。
在内部,代码将使用String.Concat() 方法,该方法接受对象并在对象上调用ToString()。由于 .NET 中的所有内容都派生自 object,因此这将起作用。
【讨论】:
concatenation (&) operator 可以将数字隐式转换为字符串。
另外,如果我有任何疑问,我会使用TypeName 来确定变量的类型 在你的情况下:
TypeName(str2)
另外,如果Option Strict 开启,隐含的narrowing conversion 会导致编译时错误,在这种情况下是加宽转换。
【讨论】: