如果你指的是C#中的表达式的话,那么前者 int(3.2) 的编译时会报错
class MyClass
{
public static void Main()
{
int i = 3 + int(2.1);
System.Console.WriteLine(i.ToString());
}
}
把上面代码换成 (int)2.1 即可通过
这是因为按照形式,int(...)可以是个函数,但显然不允许有int这种函数。
就算把int当成Int16/Int32结构,由于没有Int(double)这样的构造函数,编译器的构造也会失败。
而(int)2.1是C#和.NET约定的显式转换格式,所以能通过编译。
温馨提示:答案为网友推荐,仅供参考