Mega Code Archive

 
Categories / C# Book / 01 Language Basics
 

0120 Named parameters

With named parameters we can specify parameters by name not by position. using System; class Program { static void output(int i, int j) { Console.WriteLine("i=" + i); Console.WriteLine("j=" + j); } static void Main(string[] args) { output(j : 10, i : 5); } } The output: i=5 j=10 The evaluation sequence of named parameter is determined by the method call. using System; class Program { static void output(int i, int j) { Console.WriteLine("i=" + i); Console.WriteLine("j=" + j); } static void Main(string[] args) { int k = 10; output(j : k++, i : k++); } } The output: i=11 j=10 We can also mix the positional parameter and named parameter. using System; class Program { static void output(int i, int j) { Console.WriteLine("i=" + i); Console.WriteLine("j=" + j); } static void Main(string[] args) { int k = 10; output(k, j : 20); } } The output: i=10 j=20 The positional parameters have to be before the named parameters. using System; class Program { static void output(int i, int j) { Console.WriteLine("i=" + i); Console.WriteLine("j=" + j); } static void Main(string[] args) { int k = 10; output(j : 20, k ); } } The code above produces the following errors: C:\g>csc Program.cs Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1 Copyright (C) Microsoft Corporation. All rights reserved. Program.cs(17,24): error CS1738: Named argument specifications must appear after all fixed arguments have been specified