2

我看到了这样的事情:

public static void FunctionSample(**this** Class1 x, int r, double f){

“这个”是做什么的?

4

2 回答 2

6

这意味着一个扩展方法Class1尽管在当前形式下它是不正确的,因为该方法也需要是静态的并且在静态类中。

扩展方法(C# 编程指南)

扩展方法定义为静态方法,但使用实例方法语法调用。它们的第一个参数指定方法操作的类型,参数前面是 this修饰符。

于 2013-02-22T09:28:51.227 回答
0

这意味着您正在创建的方法是扩展方法。这意味着(在您的情况下)该方法将充当Class1. 所以你可以使用这个:

Class1 exmpl = new Class1();
exmpl.FunctionSample(0, 0.0);

但是,它不适用于您的情况,因为扩展方法需要是静态的,并且存在于静态类中。

如果您希望扩展方法像上面给出的示例一样工作,您将需要一个using指向包含扩展方法的静态类所在的命名空间的指令。

事实上,这也是 linq 的工作方式。如果您添加using System.Linq到代码文件中,您唯一要做的就是导入大量扩展方法。

于 2013-02-22T09:31:07.583 回答