3

我有这种方法,我不明白。我尝试搜索它,但由于我真的不知道要搜索什么,所以我什么也没找到。

有人可以向我解释一下吗?

    public List<listElementType> Search(string name,
    bool onlyActive = true,
    bool onlyDeleted = true,
    decimal from = 0,
    decimal to = decimal.MaxValue)
    {
    // Some SQL stuff
    return ...;
    }

为什么我可以像标题中提到的那样使用它?

    Search(name, onlyActive: true);
4

3 回答 3

5

这是一个命名参数Search,它使用name = nameand调用方法onlyActive = true

它实际上与调用完全相同

Search(name);

您可以在方法上使用它们来指定要更改的参数,从而有效地允许我们跳过默认参数。例如:

Search(name, from: 1, to: 2);
于 2013-03-17T12:32:47.290 回答
0
 Search(name, onlyActive: true);

这是使用命名参数的语法,因为这个函数有默认参数,你可以使用这种类型的语法来只指定你想要的——其余的将是默认的。

于 2013-03-17T12:33:41.497 回答
0

这些称为命名参数。

msdn 链接:http: //msdn.microsoft.com/en-gb/library/dd264739.aspx

基本上,除了按通常的顺序放置参数之外,您还可以放置它们的名称,后跟冒号和值。这对于这样的功能非常有用:

Func(string a = "", string b = "")
{
//blah
}

当您只想设置 b 时。没有他们,你需要做Func("", "somecustomvalue");现在,你可以去Func(b: "somecustomvalue");

于 2013-03-17T12:35:09.820 回答