我不懂参数声明

时间:2012-11-23 10:14:04

标签: c#

我得到了这个赋予这样一个方法的作业......

public List<Contact> GetLastContacts([int count = 20])  
{  
    return this._entities.ContactsSet.ToList();  
}

我不明白且无法找到有关[int count = 20]作为参数...

的信息

任何人都能解释他们的意思吗?

/祝贺!

3 个答案:

答案 0 :(得分:6)

参数中的

int count = 20将其声明为参数的默认值。它使调用者的参数可选(或者看起来对于调用者来说是可选的)。

因此,在调用它的方法中,您可以这样做:

var contacts = GetLastContacts(); // Will compile to GetLastContacts(20)

或者,使用值来覆盖默认值:

var contacts = GetLastContacts(35); 

请参阅MSDN上的Named and Optional arguments

答案 1 :(得分:3)

public List<Contact> GetLastContacts(int count = 20)(没有[])表示该方法有一个名为int的{​​{1}}参数,但该参数是可选的,如果调用者将其保留,只是致电count GetLastContacts()的默认值为count

C#代码中的方括号不正确,但它们可以出现在文档,工具提示等中,作为参数可选的指示。

答案 2 :(得分:0)

我想这可能是两种写“可选参数”的方法的组合。在C#中,如果使用“赋值”(如

)指定默认参数值,则可以使用可选参数定义方法
public List<Contact> GetLastContacts(int count = 20)

然后你可以打电话

GetLastContacts(count)

指定计数,或

GetLastContacts()

使用默认值20.

在您的代码中使用[ ]可能是POSIX标准化的编写可选参数的方式,因为它不受C#语言或其文档标准的支持,所以没有理由在那里。