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