implicit-typing相关内容
在下面的简化代码中, if(city == "纽约市"){var MyObject = 来自 MyEFTable 中的 x其中 x.CostOfLiving == "非常高"选择 x.*;}别的{var MyObject = 来自 MyEFTable 中的 x其中 x.CostOfLiving == "中等"选择 x.*;}foreach(MyObject 中的 var 项){Console.W
..
为什么我不能将数组初始化器与隐式类型变量一起使用? string[] words = { "apple", "strawberry", "grape" };//合法的string[] words = new string[]{ "苹果", "草莓", "葡萄" };//合法的var words = new []{ "苹果", "草莓", "葡萄" };//合法的var words = new s
..
有谁知道或想推测为什么隐式类型仅限于局部变量? var thingy = new Foo(); 但为什么不... var getFoo() {返回新的 Foo();} 解决方案 Eric Lippert 就此主题撰写了整篇博文. https://docs.microsoft.com/en-us/archive/blogs/ericlippert/why-no-var-on-fiel
..
我有以下代码: Func比较器 = 委托(字符串值){返回值!=“0";}; 但是,以下内容无法编译: var comparer = delegate(string value) {返回值!=“0";}; 为什么编译器不能确定它是一个Func?它接受一个字符串参数,并返回一个布尔值.相反,它给了我错误: 无法将匿名方法分配给隐式类型的局部变量. 我有一个猜测,那就是如果编译了
..
为什么我不能使用带有隐式类型变量的数组初始值设定项? string[] words = { "apple", "strawberry", "grape" };//合法的string[] words = new string[]{ "apple", "strawberry", "grape" };//合法的var words = new []{“苹果"、“草莓"、“葡萄"};//合法的var wo
..
foreach (var row in table.Rows) { DoSomethingWith(row); } 假设我正在使用标准的System.Data.DataTable(具有System.Data.DataRow对象的集合),则上面的变量'row'解析为object类型,而不是System.Data.DataRow. foreach (DataRow row in t
..
提供以下信息: // not a problem int i = 2, j = 3; 这让我感到惊讶: // compiler error: Implicitly-typed local variables cannot have multiple declarators var i = 2, j = 3; 不会编译.也许对此我有些不了解(这就是为什么我要问这个问题)?
..
在"ADO.NET实体数据模型"中,我从许多表中创建了“数据库优先"模型. 所有表都具有“代码"和“名称"字段以及其他字段的不同集合. 然后,我创建了一个“上下文"对象. 现在,我想创建一个变量"src_table",该变量将有条件地分配给context.table1或context.table2等,然后使用src_table.code和src_table.name属性. 这样的代码可以正常
..
在我正在阅读的书中,与没有使用var关键字的情况相比,隐式键入使以下代码更清晰: var words = new[] { "a", "b", null, "d" }; foreach (var item in words) { Console.WriteLine(item); } 在我看来,情况恰恰相反:如果使用string代替,则代码阅读者将立即知道它是foreach循环中的
..
说我有一个像这样的简单班级 abstract class Foo { implicit val impInt: Int = 42 def f[A]()(implicit a: A): A val f2: Int = f() } 在声明val f2时,编译器能够推断出函数f的隐式参数的类型为Int,因为该类型与结果类型相同,并且结果类型必须与结果类型相匹配.值f2,即Int.
..
我有一个名为StudentID的自定义数据类型,该类型隐式转换为字符串. 当我将StudentID实例传递给SqlCommand.Parameters.AddWithValue(作为值)并执行命令时,我收到以下错误: No mapping exists from object type StudentID to a known managed provider native type.
..
我刚刚安装了 ReSharper 的试用版,并且第一件事注意到,它总是建议用隐式类型的局部变量替换显式类型局部变量,例如: public string SomeMethod(int aParam) { int aNumber = SomeOtherMethod(aParam); //应该更改为: var aNumber = SomeOtherMethod(aParam); }
..
我一直和我的同事聊天,听说他们的编码标准明确禁止他们使用C#中的 var 关键字。他们不知道为什么是这样的,我总是发现隐式声明在编码时非常有用。我从来没有找到什么类型的变量是什么问题(你只能将鼠标悬停在VS中的变量,你会得到类型的方式)。 任何人都知道为什么在C#中使用var关键字是个不好的主意。 解决方案 。Net Framework Design Guidelines (awes
..
我的印象是,C#编译器将隐类型的数组基于关闭,他们都可以隐式转换为一个类型。 编译器生成 的没有最好的类型发现隐式类型数组的 公共接口ISomething {} 酒店的公共接口ISomething2 {} 公共接口ISomething3 {} 公共类Foo:ISomething {} 公共类酒吧:ISomething,ISomething2 { } 公共类车:I
..
在下面的代码简化, 如果(市==“纽约城”) $ { b $ b变种为MyObject =从X在MyEFTable 其中x.CostOfLiving ==“非常高” 选择X *。 } ,否则 { 变种为MyObject =从X在MyEFTable 其中x.CostOfLiving ==“温和” 选择x。 *; } 的foreach(在为MyObject VAR项)
..
我刚刚安装的 ReSharper的试用版和的第一件事我注意到的是它总是暗示与隐式类型的人,如更换显式类型的局部变量: 公共字符串的someMethod(INT aParam) { INT aNumber的= SomeOtherMethod(aParam); //应改为: VAR aNumber的= SomeOtherMethod(aParam); } 我想显式类
..
我一直在与同事聊天的一天,听说他们的编码标准明确禁止他们使用 VAR 关键字在C#。他们不知道为什么它是如此,我总是发现隐含的声明编码时要非常有用的。我从来没有任何问题,找出什么类型的变量是(你只悬停在VS变量,你会得到的类型的方式)。 有谁知道为什么它会是一个坏主意,使用var关键字在C#? 解决方案
..
为什么我不能使用数组初始化有一个隐式类型变量? 的String []字= {“苹果”,“草莓”,“葡萄”};法律// 字符串[]字=新的String [] {“苹果”,“草莓”,“葡萄”};法律// VAR字=新的[] {“苹果”,“草莓”,“葡萄”};法律// VAR字=新的String [] {“苹果”,“草莓”,“葡萄”};法律//VAR字= {“苹果”,“草莓”,“葡萄”,“桃花”}
..
我有以下的code: Func键<字符串,布尔>比较器=委托(字符串值){ !返回值=“0”; }; 不过,以下不会编译: VAR比较器=委托(字符串值){ !返回值=“0”; }; 为什么不能编译器弄清楚它是一个 Func键<字符串,布尔> ?它需要一个字符串参数,并返回一个布尔值。相反,它给我的错误: 不能到指定匿名方
..
我喜欢使用隐式类型的几乎一切,因为它是干净和简单。然而,当我需要环绕单个语句try ... catch块,我必须打破了隐式类型,以确保变量有一个确定的值。这里有一个人为假设的例子: VAR S =“ABC”; //我想避免显式类型在这里 IQueryable的< ABC>结果= NULL; 尝试 { 结果=的GetData(); }赶上(例外前){} 如果(结果!= N
..