Есть ли какое-либо преимущество наличия опции использования частных дополнительных методов? Я не нашел использования для них вообще. Разве не было бы лучше, если бы C# не позволил им вообще?
Это полезно для улучшения синтаксиса кода внутри метода / класса, но вы не хотите раскрывать функциональность, предлагаемую этим методом расширения, другим области кодовой базы. Другими словами, как альтернатива обычным частным статическим вспомогательным методам
Я просто искал в Google поиск, так как сомневался, что они могут быть полезны. Однако это отличное иллюстративное приложение для них:
http://odetocode.com/blogs/scott/archive/2009/10/05/private-extension-methods.aspx
Примите во внимание следующее:
public class MyClass
{
public void PerformAction(int i) { }
}
public static class MyExtensions
{
public static void DoItWith10(this MyClass myClass)
{
myClass.DoIt(10);
}
public static void DoItWith20(this MyClass myClass)
{
myClass.DoIt(20);
}
private static void DoIt(this MyClass myClass, int i)
{
myClass.PerformAction(i);
}
}
Я понимаю, что этот пример не имеет большого смысла в его текущей форме, но я ' Я уверен, что вы понимаете возможности, которые предоставляют частные методы расширения, а именно возможность иметь общедоступные методы расширения, которые используют частное расширение для инкапсуляции или композиции.