Мне было бы удобно/логично писать мои расширения для класса во вложенном классе. Основная причина заключается в том, что я могу просто назвать этот класс 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);
}
}
}
В то время как теперь я должен создать отдельный класс свободного стояния.
Обновление/Примечание: Я не думал, что факт, что это был внутренний класс, повлияет на объем доступности метода расширения. Я только хотел рассмотреть проблему практического кодирования отдельного класса с отдельным именем.