Chr*_*yer 5 .net generics ienumerable
例:
System.Web.Security.MembershipCollection实现IEnumerable而不是IEnumberable<T>.为什么它不会实现后者,当它看起来会更好(例如使用LINQ)?
或者,它不一定更好吗?
Rem*_*anu 12
历史很重要.泛型并不总是存在,因此您可能会遇到在泛型出现之前设计的类和API.
此外,目标受众也很重要.某些功能针对的是可能在理解泛型方面存在问题的开发人员受众:
权衡:使用泛型的一些高级功能的API可能对某些开发人员来说太难使用.泛型的概念并没有被广泛理解,在某些情况下语法可能会带来问题,而且作为任何大的新特性,泛型可能会为一些入门级开发人员带来重要的学习曲线.
是的,引用是从2004年开始的,但是如果不是你今天使用的大部分.Net API都出现在2005年,那么引用实际上非常相关.
Ada*_*son 10
您可以使用函数或函数将LINQ与任何一个一起IEnumerable使用.如果您确信只包含特定类型的对象,那么会稍快一些.Cast<T>()OfType<T>()IEnumerableCast<T>()
例如,
ArrayList foo = new ArrayList();
foo.Add("bar");
foo.Add("baz");
var bar = foo.Cast<string>().Select(s => s.ToUpper());
Run Code Online (Sandbox Code Playgroud)
ArrayList在.NET中泛型出现之前存在许多现有类(如),因此它们仍然是非泛型的.
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |