扩展方法使开发人员可以向现有CLR类型的公共合同添加新方法,而不必对其进行子类化或重新编译原始类型。扩展方法有助于将当今在动态语言中流行的“鸭子键入”支持的灵活性与强类型语言的性能和编译时验证相结合。
扩展方法可实现各种有用的方案,并有助于实现真正强大的LINQ查询框架…。
这意味着你可以打电话
MyClass myClass = new MyClass();
int i = myClass.Foo();
而不是
MyClass myClass = new MyClass();
int i = Foo(myClass);
这样可以构建如下所述的流畅接口。