我想实现类,即我们在.Net中有String类。在那,如果你检查我们编码....
C#:
String strString = "Value-12346- .";
String[] strArray = strString.Substring(0, strString.Length - 1).TrimEnd().ToUpper().Split("-".ToCharArray());
在此示例中,如果您检查我们是否正在调用String Class的多个函数,则调用每个函数,即调用Substring
函数TrimEnd
并且TrimEnd
Split
函数为{{1}}调用。我想实现类似的。请帮帮我。
非常感谢!!!
答案 0 :(得分:3)
确保每个方法都返回一个相同类型的对象(或者你想要的类型)然后你就可以调用对象上的方法(级联或链)。字符串示例中的上述每个方法都返回一个新字符串(请注意,字符串在这里是不可变的),因此您可以再次应用字符串函数,依此类推。
在相关说明中,请参阅Fluent Interface的工作原理。显示非流畅和流畅API的C#示例就是一个很好的示例:http://en.wikipedia.org/wiki/Fluent_interface
public IConfigurationFluent SetColor(string newColor)
{
this.color = newColor;
return this;
}
答案 1 :(得分:0)
正如manojlds上面指出的那样,你可以通过让你的类成员方法返回其所有者类的类型来实现这一点。现在,特别是,String的方法每次都返回一个新的字符串实例(而不是“修改”源并返回它),因此您可能希望在您的方法中创建“this”的深层副本,然后对其进行任何更改新对象并将其返回。不仅如此,String类是不可变的。
抱歉太详细了。