我遇到了如下几个C#代码实例:
public static int Foo(this MyClass arg)
this在这种情况下,我无法找到关键字含义的解释。有什么见解吗?
this
这是一种 扩展方法 。请参阅此处以获取解释。
扩展方法使开发人员可以向现有CLR类型的公共合同添加新方法,而不必对其进行子类化或重新编译原始类型。扩展方法有助于将当今在动态语言中流行的“鸭子键入”支持的灵活性与强类型语言的性能和编译时验证相结合。 扩展方法可实现各种有用的方案,并有助于实现真正强大的LINQ查询框架…。
扩展方法使开发人员可以向现有CLR类型的公共合同添加新方法,而不必对其进行子类化或重新编译原始类型。扩展方法有助于将当今在动态语言中流行的“鸭子键入”支持的灵活性与强类型语言的性能和编译时验证相结合。
扩展方法可实现各种有用的方案,并有助于实现真正强大的LINQ查询框架…。
这意味着你可以打电话
MyClass myClass = new MyClass(); int i = myClass.Foo();
而不是
MyClass myClass = new MyClass(); int i = Foo(myClass);
这样可以构建如下所述的流畅接口。