2012-11-23 64 views
0

我得到这个任务要声明这样的方法......我不明白参数声明

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

什么我不明白,也找不到有关的信息是[int count = 20]作为参数.. 。

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

/祝好!

+4

你从哪里看到这个? '[]'不是围绕参数的标准C#。 – Oded

+0

它在哪里使用? –

+0

@Oded:“我得到了这个任务”有些东西告诉我''[]'与作业本身有关,但我想我们都不会弄清楚。 – BoltClock

回答

6

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

所以,在方法调用它,你可以这样做:

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

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

var contacts = GetLastContacts(35); 

Named and Optional arguments MSDN上。

+1

非常感谢,现在我明白了! :) – Rovdjuret

3

public List<Contact> GetLastContacts(int count = 20)(无[])表示方法有一个int参数调用count,但该参数是可选的,如果呼叫者留下出来,只是调用GetLastContacts()count的默认值是20

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

+2

[是的确实](http://msdn.microsoft。COM/EN-US /库/ dd264739.aspx)。 – Rawling

+0

@xbonez - 是的。自3.0版以来 - 该功能被称为可选参数,但默认值就是它。 – Oded

+0

确实......我想它是在某处添加的。撤回我的downvote。 – xbonez

0

我想这可能是两种方式来编写“可选参数”的组合。在C#中,你可以,如果你指定与“转让”之类

public List<Contact> GetLastContacts(int count = 20) 

默认参数值来定义可选参数的方法,然后你可以调用

GetLastContacts(count) 

指定计数,或

GetLastContacts() 

其使用的20

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