我怎样才能创造无限的财产

在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);

结果


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();

它不是“无限的”,它只是一个返回被调用的相同类型的方法。 它可以返回自己或任何类型的实例。 当你这样做时,一定要注意你正在构建的界面,因为你可能会意外地创建相当不直观的东西。 (对原始物体产生意想不到的副作用或不会对原始物体产生预期效果的流畅链子。)

链接地址: http://www.djcxy.com/p/68919.html

上一篇: How can i create infinite property

下一篇: Why would finding a type's initializer throw a NullReferenceException?