Question

C# syntax - Colon after a variable name

Quick question; I've recently upgraded to VS2010, and got the new version of ReSharper.

Now, when ReSharper is giving me autocomplete options for a variable, it give me the option of <variableName>:

What does the : stand for?

For example; I have this:

var productIds = new List<int>(inventoryItemsToProcess.Keys);

And when I start typing out a line like this:

var lastOrderDates = GetProductLastOrderDates(pro

It gives me the option for productIds as well as productIds:

What's the difference between the two?

 45  20022  45
1 Jan 1970

Solution

 52

The colon is necessary to indicate parameters. In C# 4.0, you can re-order and name your parameters, optionally, but the variable name must match the prototype and have the colon postfix.

public void Test(string something1, string something2)
{
}

can be called as:

Test(something2: "bar", something1: "foo");

if you want

2010-07-19