Tag: 隐式输入

实现接口的数组的隐式类型

我的印象是C#编译器将隐式地键入一个基于一个类型的数组,它们都可以隐式转换为。 编译器为隐式类型数组生成No best type public interface ISomething {} public interface ISomething2 {} public interface ISomething3 {} public class Foo : ISomething { } public class Bar : ISomething, ISomething2 { } public class Car : ISomething, ISomething3 { } void Main() { var obj1 = new Foo(); var obj2 = new Bar(); var obj3 = […]

使用C#var进行System.Data.Datarow的隐式类型

foreach (var row in table.Rows) { DoSomethingWith(row); } 假设我正在使用标准的System.Data.DataTable (它有一个System.Data.DataRow对象的集合),上面的变量’row’解析为object类型,而不是System.Data.DataRow 。 foreach (DataRow row in table.Rows) { DoSomethingWith(row); } 像我期望的那样工作。 这有什么特别的原因吗? 谢谢。

隐式类型如何使代码更清晰?

在我正在阅读的一本书中,它指出隐式类型使得以下代码比不使用var关键字更清晰: var words = new[] { “a”, “b”, null, “d” }; foreach (var item in words) { Console.WriteLine(item); } 在我看来,情况恰恰相反:如果您使用string ,那么代码的读者会立即知道它是foreach循环中的字符串,而不必查找定义变量的代码。 隐式类型如何使上面的代码更清晰? 附录 这本书是C#3.0 – Die Neuerungen。 schnell + kompakt是德语,实际文本是: Das Schluesselwort var kann auch beim Durchlaufen von foreach-Schleifen verwendet werden,um somit den Code uebersichtlicher und einfacher zu gestalten。 Besonders bei komplexen Typen kann man […]

var in C# – 为什么它不能用作成员变量?

为什么不能在C#中的类级别拥有隐式类型的变量,以便立即分配这些变量? 即: public class TheClass { private var aList = new List(); } 它只是尚未实现的东西,还是存在概念/技术原因导致其未完成的原因?