之前我问了一个问题,为什么我看到这么多的例子都使用了这个var关键字并得到了答案,虽然它只是匿名类型所必需的,但它仍然被用来使编写代码"更快"/更容易和"只是因为".
在这个链接("C#3.0 - Var不是Objec")之后,我看到它var被编译成IL中的正确类型(你会在中间的文章中看到它).
我的问题是IL代码使用var关键字take 会有多少(如果有的话),如果在任何地方使用它,它是否会接近于对代码性能有可衡量的水平?
我已经阅读了大量有关C#v4附带的新关键字的文章,但我无法弄清楚"动态"和"var"之间的区别.
这篇文章让我思考它,但我仍然看不出任何区别.
难道你只能将"var"用作局部变量,而是局部变量和全局变量吗?
你能否展示一些没有动态关键字的代码,然后用动态关键字显示相同的代码?
我是C#的新手,请帮助我理解以下声明之间的区别:
var variable_name = new class_a(); // there is no error and is working fine
var variable_name;
variable_name = new class_a(); // this line is throwing error
Run Code Online (Sandbox Code Playgroud)
当我把声明重写为
class_a variable_name;
variable_name = new class_a(); // this is working fine
Run Code Online (Sandbox Code Playgroud) 这个三元线我遇到了麻烦:
var userFromContext = IsOwner ? db.Owners.Where(o => o.UserName == username)
: db.Users.Where(u => u.UserName == username);
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误信息:
无法确定条件表达式的类型,因为System.LINQ.IQueryable<Owners>和之间没有隐式转换System.LINQ.IQueryable<Users>.
如果我将它分配给var变量,为什么要关心?