一尘不染

在C#中静态方法的形式参数中使用“ this”关键字

c#

我遇到了如下几个C#代码实例:

public static int Foo(this MyClass arg)

this在这种情况下,我无法找到关键字含义的解释。有什么见解吗?


阅读 383

收藏
2020-05-19

共1个答案

一尘不染

这是一种 扩展方法
。请参阅此处以获取解释

扩展方法使开发人员可以向现有CLR类型的公共合同添加新方法,而不必对其进行子类化或重新编译原始类型。扩展方法有助于将当今在动态语言中流行的“鸭子键入”支持的灵活性与强类型语言的性能和编译时验证相结合。

扩展方法可实现各种有用的方案,并有助于实现真正强大的LINQ查询框架…。

这意味着你可以打电话

MyClass myClass = new MyClass();
int i = myClass.Foo();

而不是

MyClass myClass = new MyClass();
int i = Foo(myClass);

这样可以构建如下所述的流畅接口

2020-05-19