知道为什么使用var velocity = ...
给我一个未声明的错误?当我使用int velocity = ...
时,它没有错误。
// Error: Cannot use local variable 'velocity' before it is declared
var velocity = int.TryParse(txtVelocity.Text, out velocity) ? velocity : -1;
// Valid
int velocity = int.TryParse(txtVelocity.Text, out velocity) ? velocity : -1;
答案 0 :(得分:6)
因为规格如此说明
您不能在初始化表达式中使用使用var
声明的变量。
请参阅:Implicitly Typed Local Variables (C# Programming Guide)
使用var声明的变量不能在初始化中使用 表达。换句话说,这个表达是合法的:
int i = (i = 20);
但此表达式会产生编译时错误:var i = (i = 20);
答案 1 :(得分:3)
事实是 var 关键字意味着“我想要一个我仍然不知道它的类型的变量,请编译先生为我找到它的类型”。 现在你想使用未确定的速度var作为out参数。 这是不可能的,因为你正在为编译器做一个循环。