Позвольте мне попытаться уточнить использование и намерения Extension Method
.
Рассмотрим Extension Method
public static bool IsNullOrEmpty(this string source)
{
return source == null || source == string.Empty;
}
Теперь вы расширяете свой класс string
с помощью этого Extension Method
var myString = "Hello World";
Assert.AreEqual(myString.IsNullOrEmpty(), false);
Вот что .NET делает при компиляции:
public static bool IsNullOrEmpty(string source)
{
return source == null || source == string.Empty;
}
Использование нашей старой школы
var myString = "Hello World";
Assert.AreEqual(IsNullOrEmpty(myString), false);
Метод расширения ничего не значитно визуализация того, что мы привыкли делать.
Что ж, расширение индексаторов могло бы быть возможным, но Microsoft не думала об этом.