对类c#中的方法使用方法

时间:2018-01-30 21:05:11

标签: c#

我希望能够做到这样的事情:

var question = new MyClass();
question.Add("SomeString").Call(someFunc);

我已经用Google搜索并检查了其他问题,但我没有找到答案。 很抱歉,如果这个问题已经存在,但我真的没有什么可以搜索的。

4 个答案:

答案 0 :(得分:4)

它被称为method chain。您需要在方法中返回对象,如下所示:

$0

答案 1 :(得分:2)

您需要通常称为method chaining

的内容
public MyClass
{
    public MyClass Add(...)
    {
        // Process input...
        return this;
    }

    public MyClass Call(...)
    {
        // Process input...
        return this;
    }
}

如果您的MyClass定义如上,您也可以使用单行代码填写代码:

MyClass question = new MyClass().Add("SomeString").Call(someFunc);

诀窍就是在所有方法结束时使用return this,以便返回当前实例并可用于后续调用。

答案 2 :(得分:1)

您研究流畅的界面和方法链。 例如:

class Customer{
     string name;
     string surName;
     public Customer SetName(string _name){
         this.name=_name;
         return this;
     }
     public Customer SetSurname(string _surName){
         this.surName=_surName;
         return this;
     }
}

var customer=new Customer().SetName("Hasan").SetSurname("Jafarov");

答案 3 :(得分:1)

你想要的是一种流利的语法。

实现这一目标的最简单方法是在“添加”方法中返回“this”

public class MyQuestion
{
    public MyQuestion Add(string contentToAdd)
    {
        // Here goes some logic
        return this;
    }
}

如果您想了解更多信息:请查看this