请参阅以下代码:
Dim str1 As String="Test"
Dim int1 As Integer = 1
Dim str2 = str1 & int1
在连接之前int1是否应该被转换为字符串,或者没有区别?
我最近在VB.NET应用程序中打开了OPTION STRICT ON
答案 0 :(得分:2)
请参阅String manipulation with & or + in VB.NET。
使用& 运算符表示您打算连接字符串, 而 + 运算符表示您打算添加数字。运用 & 运算符会将操作的两端转换为字符串。
&
始终返回字符串。
答案 1 :(得分:1)
这是一个非常糟糕的问题,但无论如何我都会回答。结果是:不,不需要铸造。在您的情况下,str2
将是Test1
。
在内部,代码将使用String.Concat()方法,该方法接受对象并在对象上调用ToString()
。由于.NET中的所有内容都来自object
,因此可以使用。
答案 2 :(得分:0)
concatenation (&) operator可以隐式地将数字转换为字符串。
此外,如果我有任何疑问,我会使用TypeName来确定变量的类型 在你的情况下:
TypeName(str2)
此外,如果启用Option Strict,则隐式narrowing conversion会导致编译时错误,在这种情况下,它是扩展转换。