It's a feature of .NET... Named Parameters... That means you can pass in your parameters in any order, as long as you specify the named parameter, followed by a colon (in C#.... in VB it's colon-equals := ) and the value.
So let's say I have a function void doSomething(string myMessage, int32 timerVal)
I can call it thusly:
doSomething("Hi there", 300)
Or
doSomething(myMessage:"Hi there", timerVal:300)
Or
doSomething(timerVal:300, myMessage:"Hi there")
What's the advantage? I don't know. Other than being able to specify your parameters in any order, and at least then it's explicit what each parameter is (I've found myself checking out the procedure's signature countless time going "What is this parameter I'm passing in?")... there's not much else for it.
* The Best Reasons to Target Windows 8
Learn some of the best reasons why you should seriously consider bringing your Android mobile development expertise to bear on the Windows 8 platform.