type-inference相关内容
后续问题前一个问题,这已被确定为一个协方的问题。以这一步,如果我修改 IFactory的如下: 类节目 { 静态无效的主要(字串[] args) { &的IFactory LT; IProduct>工厂=新厂(); } } 类工厂:IFactory的<产品与GT; { } 类产品:IProduct { } 接口IFactory的<出T>
..
我一直假设下的编程,在打电话时的方法C#4.0,提供为你的论点名称将不会影响结果,除非这样做你被“跳过”一个或多个可选参数。 所以我有点惊讶地发现以下行为: 由于这需要一个 Func键℃的方法; T> ,执行它并返回结果: 公共静态五六< T>( FUNC< T&F)的温度 { 返回F(); } 和另一种方法从上述方法是可见的:
..
我想写一个扩展法,将字典上的值分别为某种序列的工作。不幸的是,编译器似乎无法推断从我的方法的使用的通用参数;我需要明确指定它们 公共静态无效的someMethod< TKEY的,TUnderlyingValue,TValue> (这IDictionary的< TKEY的,TValue>字典) 式TValue:IEnumerable的< TUnderlyingV
..
我想拿出 NotOfType 的实现,它具有读取调用语法。 NotOfType 应该是补充 OfType< T> ,并会因此产生是的不是类型 T 我的目标是实现其将被称为就像 OfType< T> ,就像这个片段的最后一行: 公共抽象类动物{} 公共类猴:动物{} 公共类长颈鹿:动物{} 公共类金狮:动物{} 变种猴子=新猴子( ); 变种长颈鹿=
..
在C#中,下列类型推断如下: 变种s =“ABCD”; 但为什么不能在类型推断当变量是一个常数? 下面抛出编译时异常:常量变种s =“ABCD”; //&LT; =编译时错误: //隐式类型的局部变量不能是常数 解决方案 实际上,我希望利珀特弹出通过与和的问题需要看看 如果有你想要的东西带到了我的注意,你可以在文本留下我的名字 -
..
我的工作我重写流利接口,用于我的IoC的类库,当我重构,以便共享通过一个基类的一些常见功能的一些code,我想出了一个障碍。 注意:这是我的希望的做的,不是我的有无的做。如果非要凑合着用不同的语法,我会的,但如果任何人有关于如何使我的code编译我想要的方式的想法,那将是非常受欢迎的。 我要一些扩展方法可用于一个特定基类,以及这些方法应该是通用的,用一个通用的类型,涉及的参数的方法中,但该
..
我很奇怪,为什么C#3.0编译器无法当它作为参数传递给一个泛型函数时,它可以隐于同样的方法创建委托推断方法的类型。 下面是一个例子: 类测试 { 静态无效美孚(INT X){} 静态无效巴≤; T&GT;(动作&LT; T&F)的温度{} 静态无效测试() { 动作&LT; INT&GT; F = foo的; // 我可以做这个 酒
..
为什么不支持构造类型推断它是泛型方法的方式吗? 公共类的MyType&LT; T&GT; { 私人只读T字段; 公众的MyType(T值){字段=值; } }VAR OBJ =新的MyType(42); //为什么不能推断类型的工作了,我想的MyType&LT; INT&GT ;? 虽然可以解决这个问题有一个工厂类,公共类MyTypeFactory { 公共静态的MyTyp
..
提供有关在C#中使用'变种'关键字的同事讨论后3我想知道是什么人的意见通过VAR是类型推断的适当使用? 例如我可疑的情况下,而懒洋洋地使用VAR,例如: - 的foreach(在someList VAR项){// ...} //'项目'的类型不明确。 VAR东西= someObject.SomeProperty; //的'东西'不明确的类型。 变种东西=的someMethod(); //的'东
..
以下code的编译错误,在T3的行: 公开&LT; E&GT;清单&LT; E&GT;的GetList() { 返回新的ArrayList&LT; E&GT;(); } 公众&LT; T&GT;第一无效() { 清单&LT; T&GT; RET =新的ArrayList&LT; T&GT;(); 清单&LT; T&GT;表=的GetList(); ŧT1 = re
..
我想知道为什么这是有效的: 对象[]数组= {“唧唧歪歪。”,23,真正的}; 但这些都不是: VAR阵列= {“唧唧歪歪。”,23,真正的}; VAR数组2 =新[] {“唧唧歪歪。”,23,真正的}; 在第二个例子,为什么按照数组初始化值编译器不能推断出数组类型?这似乎很容易做到,特别是相对于一般类型inference.In为了定义一个对象数组为什么我必须指定数组类型明确? VAR阵
..
我的编译器的行为很奇怪,当我尝试到一个固定大小的数组传递给一个模板函数。在code如下所示: 的#include&LT;&算法GT; #包括LT&;&iostream的GT; #包括LT&;&迭代器GT;模板&LT; typename的TSIZE,TSIZE N'GT; 空隙F(TSIZE(安培;阵列)[N]){ 性病::复制(数组,数组+ N的std :: ostream_iterat
..
我在寻找有关知名达马斯-辛德米尔纳算法信息 做类型推断的函数式语言,关于实施特别的信息。 我已经知道该怎么做的W-算法,但我听说了基于约束的生成器/解算器,而不是通常的统一最近的新算法。但是,我不能设法找到这些新算法的执行情况的任何讨论。 任何想法,我能找到的ML推断一些疑问语气的信息? 解决方案 如果您熟悉ML code,要找到这些东西的最佳方式是简单地考虑在野外的实现。一个很好的参考实
..
考虑 无效的主要() { 变种列表=新[] {“1”,“2”,“3”}; list.Sum(的GetValue); //错误CS0121 list.Sum(S =&GT;的GetValue(多个)); //作品 ! } 双的GetValue(字符串s) { 双VAL; double.TryParse(S,出VAL); 返回VAL; } 为
..
对于.NET DateTime类型,为什么是推断的数据库类型SqlDbTypes.DateTime代替SqlDbTypes.DateTime2?的(见的 http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx ) 背景 通过默认为less- precise SQL DateTime类型,在.NET框架保证,在默认情况下,任何.NET日期时间值
..
可能重复: 我非常惊讶于发现下面的今天...... SqlDataReader的读卡器= cmd.ExecuteReader(); 数据表schemaTable = reader.GetSchemaTable(); //下面正确编译 的foreach(在schemaTable.Rows的DataRow字段) { Console.WriteLine(场[“的ColumnName
..
我不明白,为什么C#结束了在以下LINQPad code执行一个不正确的扩展方法: 无效的主要() { //实际:同步行动 “预期:同步行动”.RUN(X =&GT; {x.Dump();}); //实际:异步任务 “预期:异步任务”.RUN(异步X =&GT; {等待System.Threading.Tasks.Task.Run(()=&GT; x.Dump(
..
如何好,是C#的类型推断?我读的地方,它只是局部变量?不知是否对类级属性的工作?对于方法签名?方法的返回类型?等等。 解决方案 有在C#中的几个主要品种类型推断的: 隐式类型的局部变量: 仅限于局部变量 只有当价值被指定为声明的一部分 值不能为null 在值不能为一个lambda EX pression,匿名方法或方法组(没有投) 的值的编译时类型用于变量的类型 变量的任何进一步使用仅
..
如果我有以下的code 私人BaseMessage的getMessage() { 返回新OtherMessage(); } 私人无效CheckType&LT; T&GT;(T型) { Console.WriteLine(type.GetType()的ToString()); Console.WriteLine(typeof运算(T)的ToString()); } 私人
..
在C#中,我喜欢的 VAR 关键字这样的情况: VAR myList上=新的名单,其中,MyType的&GT;(); 有没有在C ++ / CLI任何等价的,还是我要重复的类型名称每次只是这样的: 名单,其中,MyType的^&GT; ^ myList上= gcnew名单,其中,MyType的^&GT;(); 无法找到一个明确的声明在文档或谷歌至今。我使用的Visual St
..