- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Jon Skeet 的非常聪明的 SmartEnumerable .如果您还没有看过,我建议您检查一下。
定义类:
public class SmartEnumerable<T> : IEnumerable<SmartEnumerable<T>.Entry>
构造函数是:
public SmartEnumerable(IEnumerable<T> enumerable)
然后你通过说来使用它:
new SmartEnumerable<Cat>(myCats); // where myCats is IEnumerable<Cat>
现在我真的很想让编译器推断出我有一个猫数组并且能够只说:
new SmartEnumerable(myCats);
但是这给了我一个编译器错误:
The type arguments for method 'MiscUtil.Collections.SmartEnumerable.SmartEnumerable(System.Collections.Generic.IEnumerable)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
我不清楚这是为什么。有什么办法解决它。为什么它看不到我正在使用 IEnumerable<Cat>
并由此推断。我可以更改任何内容以使其识别我正在使用的类型吗?
我真的很喜欢某种无需指定类型即可构造 SmartEnumerable 的方法 - 因为我主要将它用于 ASP.NET MVC 中的 UI,而我并不总是有 includes
对于类型和依赖 var
给我一个引用。我最终不得不包含类型,以便能够使用 SmartEnumerable - 这降低了它的优雅。
哦,我本来可以直接给 John 发电子邮件,但他可能会在这里回复得更快 :-)
<font color=white>skeet skeet skeet, jon, jon, jon, jon skeet, skeet jon, skeetster, skeetmeister</font>
最佳答案
试试这段代码
public static class SmartEnumerable {
public static SmartEnumerable<T> Create<T>(IEnumerable<T> source) {
return new SmartEnumerable<T>(source);
}
}
void Example() {
IEnumerable<string> myCats = GetMyCats();
var se = SmartEnumerable.Create(myCats);
}
您的代码失败是因为 C# 无法推断构造函数的泛型参数。但 C# 不仅能够推断其他方法的通用参数。
在 C# 中,拥有一个名称仅在通用参数上有所不同的类是完全合法的。例如 Foo 和 Foo
关于c# - 为什么编译器不能为我推断类型? (又名 Smarter SmartEnumerable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544249/
我需要定期使用 jQuery 动态插入多级 HTML 代码。我倾向于这样插入: $('#target').prepend('' + '' + 'Some header' +
我正在使用 Jon Skeet 的非常聪明的 SmartEnumerable .如果您还没有看过,我建议您检查一下。 定义类: public class SmartEnumerable : IEnum
我需要知道 (My)SQL 中是否有一种有效的方法来执行类似于大多数编程语言中的 for 循环的 select 语句。最简单的示例是创建一个值为 1 到 100 的列。我已经搜索了周围的解决方案(我发
我通过本教程向我的 Shopify 网站添加色板,我认为它们很棒,但我希望它们变得“更智能”一点。 http://docs.shopify.com/manual/configuration/store
我还在习惯数据结构,我对以各种方式遍历二叉树感到很舒服,但现在我遇到的情况是我有一个普通的二叉树,它由只知道的节点构成具有 data、left 和 right 属性。 但是我想把它转移到一个“更聪明”
我有以下场景。 我有一个派生类的基类。然而,一切看起来都很好,每次我将鼠标光标悬停在基类的继承成员上时,智能感知都会显示它很好,EG BaseClass::SomeMember。但是,当我尝试编译时,
我需要在 Python 中通过 http 下载几个文件。 最明显的方法就是使用 urllib2: import urllib2 u = urllib2.urlopen('http://server.c
当我调试较长的数字代码时,我通常希望在发生某些事情时或在特定迭代中查看函数变量值。通常我会这样做: function banana(platano) % long stuff here for ii=
我想输出一个附属链接列表,每个链接都被标记以识别当前用户。在 HTML 中会很简单,但我们正在编写 API,因此输出是 JSON。 我有它的工作,但它似乎过于复杂。这是最好的方法吗? 我的模型 Aff
我想扩展默认模型绑定(bind),使其在处理数字时更加智能。当游戏中的逗号和小数点时,默认值非常糟糕。 我正在尝试做一个新的 Binder Public Class SmartModelBinder
我是一名优秀的程序员,十分优秀!