在.NET中,AsFoo()和ToFoo()有什么区别?
例如,enumerable.ToList()
与 list.AsReadOnly()
。
我问这个问题是因为我有一个类可以将 IEnumerable
转换为 IDataReader
。我想知道创建它的扩展方法应该是 ToDataReader
还是 AsDataReader
。
For example, enumerable.ToList()
versus list.AsReadOnly()
.
I ask because I've got a class that turns an IEnumerable<T>
into an IDataReader
. I wonder whether the extension method that creates it should be ToDataReader
or AsDataReader
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
As*
方法返回不同的接口而不迭代源,而To*
则迭代它并创建一个新对象。在您的情况下,
AsDataReader
应该是正确的选择,因为您在创建DataReader
时不会迭代源,而仅在用户调用其方法时才迭代源。As*
methods return a different interface without iterating the source, whileTo*
iterates over it and creates a new object.In your case,
AsDataReader
should be the right choice, as you don't iterate over the source when creating theDataReader
, but only when the user calls methods on it.