在C#中可以使用C#-jQuery函数链接吗?

时间:2009-09-08 18:56:52

标签: c#

由于我是C#的新手,只是想知道,我能用CQuery执行函数链接吗?

示例jQuery:

$("#gview tbody tr")
   .not(":first,:last")
   .filter(":odd") 
   .addClass("someclass")
   .css("border","solid 1px grey");

注意:我不是指客户端脚本。我唯一关心的是 C#中是否可以进行函数链接

7 个答案:

答案 0 :(得分:9)

是的,只需返回当前对象(this),您就可以根据需要进行链接。它也被称为fluent interface

答案 1 :(得分:6)

是的,你需要考虑使用修改后的Builder Pattern来返回正在处理的对象。

示例:

public class SomeClass
{
    public SomeClass doSomeWork()
    {
        //do some work on this
        this.PropertyA = "Somethign";

        return this;
    }
}

这也称为链接设计模式。

答案 2 :(得分:2)

是的,你可以,但是和jQuery一样,你想要链接的函数必须为它构建。如果你自己构建,只需返回调用者应链接的对象。在C#中链接的一个例子是Fluent nHibernate

答案 3 :(得分:1)

是。我经常使用它,例如使用StringBuilder:

string s =
   new StringBuilder()
   .Append(year)
   .Append('-')
   .Append(month)
   .Append('-')
   .Append(day)
   .ToString();

或者使用我自己的库来创建HTML控件:

Container.Controls.Add(
   Tag.Div.CssClass("item")
   .AddChild(Tag.Span.CssClass("date").Text(item.Date))
   .AddChild(Tag.Span.CssClass("title").Text(item.Title))
);

答案 4 :(得分:0)

是, 试试这个

var s = 19.ToString()。Replace(“1”,“”)。Trim()。ToString(“0.00”);

答案 5 :(得分:0)

您可以像大多数编程语言一样从另一个函数调用一个函数......这一切都取决于您的构建方式。

您可以拥有一个对象:

public class DoMath
{
    private int Add2(int piNumber)
    {
        return piNumber + 2; 
    }
    private int Divideby7(int piNumber)
    {
        return Divideby7(this.Add2(piNumber));
    }
}

答案 6 :(得分:0)

是的,有几个很好的例子说明如何做到这一点。例如,请查看Fluent NHibernate