Lookup <tkey,telement =“”>类没有公共构造函数的任何好理由?

时间:2015-10-27 12:50:27

标签: c# .net oop

为什么System.Linq.Lookup<TKey, TElement>类中没有公共构造函数?

.net框架设计者有什么意图使Lookup构造函数私有化?

1 个答案:

答案 0 :(得分:2)

两个可能的原因:

  1. 因为它是不可变的,所以所有初始化都必须在构造时完成,因此工厂方法(Enumerable.ToLookup)在这种情况下比复杂的公共构造函数更合适。
  2. 因为工厂方法足以创建Lookup,所以不需要构造函数。
  3. 最后,设计师不必证明做某事。当存在一个工厂方法来创建构造函数时,我看不到构造函数的价值。如果您认为有一个用例,其中构造函数的超过了添加一个成本(包括设计,构建,测试,记录和支持),那么随意在http://connect.microsoft.com上提出建议。