考虑我在我的简单服务器框架中有多个函数,如下所示,它需要多个函数,如下所示:
new TestServer()
.DOBind("ip", "port")
.SetMaxBindTries(3)
.SetMaxConnections(300)
.ONBind(delegate {...})
.ONReceiveBytes(delegate {...})
.ONSocketStatusChanged(delegate {...})
.ONBlaBlaBla...
我的问题: - 我怎么能这样做? - 什么是"特殊关键词"去弄清楚 ? - 什么样的"类设计/设计模式"我应该遵循哪种结构?
任何指示赞赏。
答案 0 :(得分:7)
这里没有秘密关键字或设计。会发生什么是这些方法中的每一个都返回TestServer的实例(只需返回this
):
TestServer DoThis()
{
// method code
return this;
}
TestServer DoThat(string WithThisParameter)
{
// method code
return this;
}
然后你可以这样做:
var x = new TestServer();
x.DoThis().DoThat("my string").DoThis();
显然,正如 Vache dee-see在评论中写道,这被称为"fluent API"
答案 1 :(得分:1)
class TestServer
{
string x = "";
string y = "";
string z = "";
TestServer SetX(string val)
{
x = val;
return this;
}
TestServer SetY(string val)
{
y = val;
return this;
}
TestServer SetZ(string val)
{
z = val;
return this;
}
}
然后你就可以这样做
new TestServer().SetX("blbablabla").SetY("Blablabla").SetZ("blablabla");