Ale*_*Wei 2 c# ienumerable ienumerator foreach
我有两个实现的A和B类IEnumerable.
甲使用的GetEnumerator从乙.
B是A类成员.
但是成员B可以为null,所以我添加了null check.
问题也在代码示例的注释中说明.应该在另一个分支中放置什么来阻止foreach null异常?
在下面的示例:
rootNode是乙.
所示功能是A的功能.
B是A的成员.
public IEnumerator<BVHNode<BoundingVolumeClass>> GetEnumerator()
{
if (rootNode != null)
{
return rootNode.GetEnumerator();
}
else
{
return null;
//return null cause foreach null exception
//what can be put here to stop it?
}
}
Run Code Online (Sandbox Code Playgroud)
不要返回null但使用空集合:
public IEnumerator<BVHNode<BoundingVolumeClass>> GetEnumerator()
{
return rootNode == null
? Enumerable.Empty<BVHNode<BoundingVolumeClass>>().GetEnumerator()
: rootNode.GetEnumerator();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |