[英]VB.Net to C# conversion of '+' operator
为什么VB.Net会转换此代码
Sub Main()
Dim str As String = ""
Dim lNumber As Integer = 0
str = "String " + lNumber
Console.WriteLine(str)
End Sub
至
public static void Main()
{
int lNumber = 0;
Console.WriteLine(Conversions.ToString((double) (Conversions.ToDouble("String ") + lNumber)));
}
不只是
public static void Main()
{
int lNumber = 0;
Console.WriteLine("String " + lNumber);
}
我问这个像在C#中
当一个或两个操作数的类型为string时,+组合操作数的字符串表示形式
VB.NET + *
VB.NET将运算符+
视为算术运算符,请尝试将一个数字添加到另一个数字。 如果一个操作数是数字,则将另一操作数转换为数字(但仅当Option Explicit
为On
)。 仅当两个操作数都是字符串时,这些字符串才会被合并。
请参阅: http : //msdn.microsoft.com/zh-CN/library/9c5t70w2%28v=vs.80%29.aspx
VB.NET&*
VB.NET将运算符&
作为运算符来简化字符串。 如果一个操作数是字符串,它将另一个操作数转换为字符串。
请参阅: http : //msdn.microsoft.com/zh-CN/library/wfx50zyk(v=vs.80).aspx
C#.NET + *
C#.NET将运算符+
视数据类型而定,视为隐含运算符的算术运算符。 如果一个操作数是字符串,它将另一个操作数转换为字符串。
请参阅: http : //msdn.microsoft.com/zh-cn/library/k1a63xkz(v=vs.71).aspx
因此,知道这一点,将VB.NET运算符+转换为将操作数转换为数字的方法是合乎逻辑的。
要查看语言之间的所有差异,请参见: http : //www.harding.edu/fmccown/vbnet_csharp_comparison.html
我在这里找到了我问题的答案(+运算符(Visual Basic))
表达式的数据类型 :当一个表达式是数字数据类型而另一个表达式是字符串时,会发生什么?
编译器采取的行动 :如果Option Strict为On,则生成编译器错误。 如果Option Strict为Off,则将String隐式转换为Double并添加。 如果无法将String转换为Double,则抛出InvalidCastException异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.