在C#中,字符串具有无限属性,如此
string a = "";
a.ToString().Length.ToString().ToUpper().ToLower().ToString()....
如何创建这样的
ClassName a = new ClassName();
a.text("message").title("hello").icon("user");
谢谢,它有效
public class Modal { public Modal() { } private string Date = null; private string Text = null; private string Title = null; private string Icon = null; private string Subtitle = null; private string Confirm = "ok"; private string Cancel = "cancel"; private string Type = "warning"; public Modal text(string text) { this.Text = text; return this; } public Modal title(string title) { this.Title = title; return this; } public Modal icon(string icon) { this.Icon = icon; return this; } public Modal subtitle(string subtitle) { this.Subtitle = subtitle; return this; } public Modal confirm(string confirm) { this.Confirm = confirm; return this; } public Modal cancel(string cancel) { this.Cancel = cancel; return this; } public Modal type(string type) { this.Type = type; return this; } public void show(System.Web.UI.Page Page) { StringBuilder s = new StringBuilder(); s.Append("{'date':'" + (DateTime.UtcNow.Ticks - 621355968000000000).ToString() + "','text':'" + Text + "','title':'" + Title + "','icon':'" + Icon + "','subtitle':'" + Subtitle + "','confirm':'" + Confirm + "','cancel':'" + Cancel + "','type':'" + Type + "'}"); string _script = "showModal(" + s.ToString() + ");"; ScriptManager.RegisterStartupScript(Page, Page.GetType(), (DateTime.UtcNow.Ticks - 621355968000000000).ToString(), _script, true); } }
Modal m = new Modal();
m.text("this is text").title("this is title").icon("fa-car").type("danger").show(this);
答案 0 :(得分:2)
string
上的每个方法都只返回string
。 (好吧,差不多。你那里有一个.Length
是不正确的。)如果你从你的方法中返回你的对象,你就可以实现相同的概念。 (在某些情况下,这可以称为“流畅的语法”,尽管string
示例并不一定如此。)
例如,假设您的.Title()
方法是这样的:
class ClassName
{
//...
public ClassName Title(string title)
{
this.Title = title;
return this;
}
}
然后,只要你调用someObj.Title("some string")
,该方法就会返回对象本身:
var someObj = new ClassName();
someObj.Title("some title").SomeOtherOperation();
它不是“无限”,它只是一个返回调用它的相同类型的方法。它可以返回本身或该类型的任何实例。当你这样做时,一定要注意你正在构建的界面,因为你可能会意外地创建相当不直观的东西。 (流畅的链条会对原始物体产生意想不到的副作用,或者不会对原始物体产生预期的效果。)