У меня есть следующий код WPF:
public Window1()
{
InitializeComponent();
FlowDocument fd = new FlowDocument();
fd.LoadFromWordML("../../testdoc.docx");
FlowDocument (в пространстве имен System.Windows.Documents) не имеет метод LoadFromWordML.Скорее этот метод определяется локально следующим образом:
public static void LoadFromWordML(this FlowDocument doc, string path)
Тем не менее, как вы можете видеть, LoadFromWordML вызывается так, как если бы он был методом класса FlowDocument, и фактически аргумент 'this' подавляется.
Какие возможности языка C # позволяют это делать?(И комментарий против языкового дизайна: это делает очень трудным чтение унаследованного кода.)