Jim B
Jim B

Reputation: 8574

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?

Upvotes: 45

Views: 20355

Answers (2)

Brian Genisio
Brian Genisio

Reputation: 48137

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

Upvotes: 52

Darin Dimitrov
Darin Dimitrov

Reputation: 1038830

The second is for C# 4.0 named arguments. And here's a link on MSDN.

Upvotes: 48

Related Questions