What does a := (colon equals) in VB.NET do?

It strongly names arguments, allowing you to call a method with arguments in an order other than that specified in the method definition.

For example:

sub foo (byval x As Long, byval y As Long)
   debug.print (String.Format("{0}, {1}", x.ToString, y.ToString))
end Function

can be called with the order of the arguments reversed by using their names:

foo (y:=999, x:=111)

prints:

111, 999

This is especially useful when you have a long list of optional arguments, you only want to specify a few of them, and those that you want to specify are not the first ones.


It's used to name arguments in a method call and is usually used with optional arguments.

It's especially useful for calling Word or Excel methods through ActiveX calls, where there are an awful lot of optional arguments, most of which are never used.