Vam*_*msi 4 c# var implicit-typing
例1
var test = Byte.MaxValue;
Console.WriteLine(test + " : " + test.GetType().Name);
Run Code Online (Sandbox Code Playgroud)
结果255:字节
例2
var test = 255;
Console.WriteLine(test + " : " + test.GetType().Name);
Run Code Online (Sandbox Code Playgroud)
结果255:Int32
例3
var test = 10;
Console.WriteLine(test + " : " + test.GetType().Name);
Run Code Online (Sandbox Code Playgroud)
结果10:Int32
例4
var test = 255;
test = Int64.MaxValue;
Console.WriteLine(test + " : " + test.GetType().Name);
Run Code Online (Sandbox Code Playgroud)
结果:错误:无法将类型long隐式转换为int
我的问题是为什么C#在使用时默认类型为Int32 var.
Jus*_*ner 10
当你使用var时,C#不会默认为Int32.当您声明一个整数文字而不提供类型提示时,C#默认为Int32(只要文字适合Int32,否则它将转到Int64).由于文字输入为Int32,因此var会自动选择该类型:
在C#中,文字值从编译器接收一个类型.您可以通过在数字末尾附加一个字母来指定数字文字的输入方式.例如,要指定值4.56应被视为浮点数,请在数字后附加"f"或"F" - MSDN