srm*_*srm 2 c# ienumerable base
以下代码给出了关于IEnumerable可能多次枚举的警告:
public ClassName(IEnumerable<OtherClassName> models) : base(models)
{
_models.AddRange(models);
}
Run Code Online (Sandbox Code Playgroud)
由于"基本"调用,删除此警告的常规解决方案不起作用.我无法转换为列表,因为没有地方存储该列表.
我唯一的选择是让构造函数将列表作为参数吗?在这种情况下,这是推荐的做法吗?
创建另一个私有构造函数,List<OtherClassName>使用this关键字获取并调用它:
public ClassName(IEnumerable<OtherClassName> models)
: this(models.ToList())
{
}
private ClassName(List<OtherClassName> models)
: base(models)
{
_models.AddRange(models);
}
Run Code Online (Sandbox Code Playgroud)
并确保你真的需要models在你的班级存储.也许它已经存储在base课堂上你可以从那里使用它?
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |