Looking for c# Keywords? Try Ask4Keywords

C# Language Методы расширения в сочетании с интерфейсами


пример

Очень удобно использовать методы расширения с интерфейсами, поскольку реализация может храниться вне класса, и все, что требуется для добавления некоторой функциональности в класс, - это украсить класс интерфейсом.

public interface IInterface
{
   string Do()
}

public static class ExtensionMethods{
    public static string DoWith(this IInterface obj){
      //does something with IInterface instance
    }
}

public class Classy : IInterface
{
   // this is a wrapper method; you could also call DoWith() on a Classy instance directly,
   // provided you import the namespace containing the extension method
   public Do(){
       return this.DoWith();
   }
}

используйте как:

 var classy = new Classy();
 classy.Do(); // will call the extension
 classy.DoWith(); // Classy implements IInterface so it can also be called this way