153得票9回答
为什么匿名方法不能分配给var?

我有以下代码:Func<string, bool> comparer = delegate(string value) { return value != "0"; }; 但是以下代码无法编译:var comparer = delegate(string value) { ...

65得票5回答
使用隐式类型的局部变量

我刚刚安装了一个试用版的ReSharper,发现它总是建议用隐式类型而不是显式类型定义本地变量,例如:public string SomeMethod(int aParam) { int aNumber = SomeOtherMethod(aParam); // should ...

62得票18回答
为什么var会是一个坏东西?

我前几天与同事聊天时听说,他们的编码规范明确禁止在C#中使用var关键字。他们不知道为什么这样做,而我一直觉得隐式声明在编码时非常有用。我从来没有遇到过找不到变量类型的问题(只需将光标悬停在变量上,在VS中就会得到类型)。 有人知道为什么在C#中使用var关键字是个坏主意吗?

49得票5回答
为什么C#不允许使用var同时声明多个变量?

给定以下内容:// not a problem int i = 2, j = 3; 所以让我感到惊讶的是这个:// compiler error: Implicitly-typed local variables cannot have multiple declarators var i =...

25得票6回答
隐式类型转换:为什么只局限于本地变量?

有人知道或者愿意推测为什么隐式类型声明只限于局部变量吗?var thingy = new Foo(); 但为什么不呢?...var getFoo() { return new Foo(); }

22得票3回答
为什么无法在隐式类型变量中使用数组初始化器?

为什么我不能在隐式类型变量中使用数组初始化器?string[] words = { "apple", "strawberry", "grape" }; // legal string[] words = new string[]{ "apple", "straw...

18得票4回答
使用 C# 的 var 关键字对 System.Data.Datarow 进行隐式类型推断

foreach (var row in table.Rows) { DoSomethingWith(row); } 假设我正在使用标准的System.Data.DataTable(其中包含System.Data.DataRow对象的集合),上面的变量'row'解析为object类型,...

11得票1回答
C#中的var关键字为什么不能用作成员变量?

为什么在C#类级别上不能使用隐式类型的变量,即当这些变量被立即赋值时?例如:public class TheClass { private var aList = new List<string>(); } 这只是因为它还没有被实现,还是有概念上/技术上的原因导致它没有完成?

9得票4回答
实现接口的数组的隐式类型转换

我原本认为C#编译器会隐式地根据可隐式转换的类型自动推断数组的类型。 但实际上,编译器生成了无法找到隐式类型的最佳匹配的错误提示。 public interface ISomething {} public interface ISomething2 {} public interfa...

9得票13回答
隐式类型转换如何使代码更清晰?

我正在阅读的一本书中写道,隐式类型转换使以下代码比不使用 var 关键字更清晰:var words = new[] { "a", "b", null, "d" }; foreach (var item in words) { Console.WriteLine(item); } 似乎...