设计一个方法的参数时,可为部分或全部参数分配默认值。然后,调用这些方法的代码可以选择不指定部分实参,接受其默认值。除此之外,调用方法时,还可通过指定参数名称的方式为其传递实参。以下代码演示了可选参数和命名参数的用法:
using System; using System.Collections.Generic; using System.Text; namespace ParameterInMethod { class Program { private static int s_n = 0; private static void M(int x = 9, string s = "A", DateTime dt = default(DateTime), Guid guid = new Guid()) { Console.WriteLine("x={0},s={1},dt={2},guid={3}",x,s,dt,guid); } static void Main(string[] args) { // 1. 等同于M(9, "A", default(DateTime), new Guid()); M(); // 2. 等同于M(8, "X", default(DateTime), new Guid()); M(8, "X"); // 3. 等同于M(5, "A", DateTime.Now, new Guid()); M(5, guid: Guid.NewGuid(), dt: DateTime.Now); // 4. 等同于M(0, "1", default(DateTime), new Guid()); M(s_n++, s_n++.ToString()); // 5. 等同于以下两行代码: // string t1 = "2"; int t2 = 3; // M(t2, t1, default(DateTime), new Guid()); M(s: (s_n++).ToString(), x: s_n++); Console.ReadLine(); //程序输出结果如下: /* * x=9,s=A,dt=0001/1/1 0:00:00,guid=00000000-0000-0000-0000-000000000000 * x=8,s=X,dt=0001/1/1 0:00:00,guid=00000000-0000-0000-0000-000000000000 * x=5,s=A,dt=2012/5/31 10:34:28,guid=cdc348c3-6435-40ed-8e37-23d90f4f05ce * x=0,s=1,dt=0001/1/1 0:00:00,guid=00000000-0000-0000-0000-000000000000 * x=3,s=2,dt=0001/1/1 0:00:00,guid=00000000-0000-0000-0000-000000000000 */ } } }