我认为在一个嵌套类中编写扩展程序非常方便和合理。主要原因是我可以将该类命名为Extensions
,并让它的外部命名空间为编译器提供一个唯一的类型名称。
那么,禁止这样做的技术原因是什么?
public class Foo
{
ObjectSet<Bar> Bars { get; set; }
public static class Extensions
{
public static Bar ByName(this ObjectSet<Bar> bars, string name)
{
return bars.FirstOrDefault(c => c.Name == name);
}
}
}
现在我必须创建一个独立的自由类,而不是内部类。
更新/注释:我没有想象内部类会影响扩展方法的可用性范围。我只想解决一个单独命名的实际编码问题。
this ObjectSet<Bar>
,只与 Foo 相关,因为 Foo 是其父命名容器(这是我的意图 - 但我开始认为我在另一个层面上不理解某些东西)。 - Aaron Anodide