我希望能够做到这样的事情:
var question = new MyClass();
question.Add("SomeString").Call(someFunc);
我已经用Google搜索并检查了其他问题,但我没有找到答案。 很抱歉,如果这个问题已经存在,但我真的没有什么可以搜索的。
答案 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