C#语法 - 变量名后的冒号

Jim*_*m B 39 c# syntax .net-4.0

快速提问; 我最近升级到VS2010,并获得了新版本的ReSharper.

现在,当ReSharper给我一个变量的自动完成选项时,它给了我< variableName > 的选项:

什么:代表什么?

例如; 我有这个:

var productIds = new List<int>(inventoryItemsToProcess.Keys);
Run Code Online (Sandbox Code Playgroud)

当我开始输入这样的一行时:

var lastOrderDates = GetProductLastOrderDates(pro
Run Code Online (Sandbox Code Playgroud)

它给我的选项productIds,以及productIds:

这两者有什么区别?

Dar*_*rov 43

第二个是C#4.0 命名参数.这是MSDN上的链接.

  • 更确切地说,命名参数.参数总是有名字:) (12认同)
  • @Jon Skeet:伙计,你确实意识到你是唯一知道参数和参数之间区别的人吗?;-) (6认同)
  • @Kris:我希望世界其他地方最终会关心:) (3认同)

Bri*_*sio 40

冒号是表示参数的必要条件.在C#4.0中,您可以选择重新排序和命名参数,但变量名称必须与原型匹配并具有冒号后缀.

public void Test(string something1, string something2)
{
}
Run Code Online (Sandbox Code Playgroud)

可以称为:

Test(something2: "bar", something1: "foo");
Run Code Online (Sandbox Code Playgroud)

如果你想

  • 感谢您提供插图,而不仅仅是链接. (7认同)