【问题标题】:How to initialize a field that accepts an IEnumerable如何初始化接受 IEnumerable 的字段
【发布时间】:2011-04-10 16:15:46
【问题描述】:

我有一个财产public IEnumerable<T> PieceMovement { get; set; }

我应该使用什么对象来初始化这个属性。我认为 IEnumerable 的最简单的 .net 实现可以,但是该对象是什么,这是正确的想法吗?

【问题讨论】:

  • 视情况而定。你想要它有什么?
  • SLaks 所说的。此外,您可能需要考虑将属性设置器设为私有,以防止其他代码用其他代码替换您的整个序列。

标签: c#-4.0 ienumerable


【解决方案1】:

您应该使用List<T>ReadOnlyCollection<T>

如果您基于现有序列对其进行初始化,则可以将其设置为 LINQ 查询。

【讨论】:

    【解决方案2】:

    这个问题与 IEnumerable 没有严格的关系,但通常与良好的 OOP 设计实践有关。

    由于您将 PieceMovement 公开为 IEnumerable,因此实现 IEnumerable 的每个对象都是不错的候选对象。

    你永远不应该对实际类型做出假设,所以你的想法对我来说是好的。我也经常用List

    【讨论】:

      猜你喜欢
      • 2022-12-04
      • 2021-08-03
      • 2011-03-16
      • 2014-03-21
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多