您可以自动将“ this”作为参数传递吗?

时间:2018-11-07 19:40:32

标签: c# methods parameters

是否可以选择将this作为参数自动传递给函数?例如,您可以使用[CallerMemberName]自动传递string名称。我正在寻找this的确切选项。

示例:

void PassMeThis([AutomaticThisParam] object source);

和用法:

public class SomeClass{    
    void SomeMethod(){
        PassMeThis(); // instead of PassMeThis(this)
    }
}

2 个答案:

答案 0 :(得分:5)

是的。这称为扩展方法。

  1. 创建一个静态类 Public static class MethodExtensions

  2. 像这样向其添加静态方法 public static PassMeThis(this SomeClass model) { // }

  3. 调用这样的方法(请参见您的代码示例): this.PassMeThis()

它会自动填充。 希望这就是您想要的

答案 1 :(得分:1)

如果PassMeThis与您的示例属于同一班级(或祖先),则没有意义,也可以在此处使用。

如果它是另一个类,则没有没有方法来自动获取对调用对象的引用:IS there any way to get a reference to the calling object in c#?