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

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

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

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

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

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

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); } 似乎...

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

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

7得票1回答
你有多经常为你的类创建隐式转换?

我已经开发了4年的.NET应用程序。到目前为止,我没有需要创建任何隐式转换的类。 你能提供一些现实生活中的情况,当你必须要创建隐式转换时? 谢谢

7得票1回答
从返回类型推断通用隐式参数的类型

假设我有一个简单的类如下: abstract class Foo { implicit val impInt: Int = 42 def f[A]()(implicit a: A): A val f2: Int = f() } 在声明val f2时,编译器能够推断出函数f的隐...

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

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

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

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