gpt4 book ai didi

c# - 在 IEnumerator.GetEnumerator() 中返回 IEnumerator.GetEnumerator() 是否可以?

转载 作者:太空狗 更新时间:2023-10-29 20:50:49 25 4
gpt4 key购买 nike

基本上假设您有一些收藏:

public class FurCollection : IEnumerable<FurStrand>
{
public IEnumerator<FurStrand> GetEnumerator()
{
foreach(var strand in this.Strands)
{
yield return strand;
}
}

IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}

这可以接受吗?或者这是容易出错或不好的做法?我几乎总是会使用 IEnumerator<T > 但我仍然希望非通用版本稳定并正确实现。

最佳答案

这是完全标准的,建议遵守 DRY 和其他问题。

注意

return strand;

应该是

yield return strand;

另外,它看起来像this.Strands已经实现 IEnumerable<FurStrand>所以你可以说

return this.Strands.GetEnumerator();

关于c# - 在 IEnumerator.GetEnumerator() 中返回 IEnumerator<T>.GetEnumerator() 是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com