C# 方法参数

形参与实参

信息可以作为参数传递给方法。参数在方法中充当变量。

它们在方法名称后的括号内指定。您可以添加多个参数,只需用逗号分隔即可。

下面的示例有一个方法,该方法将名为fnamestring字符串作为参数。 调用方法时,我们传递一个名字,该名字在方法内部用于打印全名:

实例

static void MyMethod(string fname) 
{
  Console.WriteLine(fname + " Refsnes");
}

static void Main(string[] args)
{
  MyMethod("Liam");
  MyMethod("Jenny");
  MyMethod("Anja");
}

// Liam Refsnes
// Jenny Refsnes
// Anja Refsnes

运行实例 »

当参数parameter被传递给方法时,它被称为实参(argument)。因此,从上面的例子来看:fname是一个参数,而Liam, JennyAnja 是实参。


默认参数值

也可以使用默认参数值,方法是使用等号(=)。如果我们不带参数调用方法,它将使用默认值("Norway"):

实例

static void MyMethod(string country = "Norway") 
{
  Console.WriteLine(country);
}

static void Main(string[] args)
{
  MyMethod("Sweden");
  MyMethod("India");
  MyMethod();
  MyMethod("USA");
}

// Sweden
// India
// Norway
// USA

运行实例 »

具有默认值的参数通常称为可选参数。在上面的例子中,country是一个可选参数,"Norway"是默认值。



多个参数

您可以有任意多个参数:

实例

static void MyMethod(string fname, int age) 
{
  Console.WriteLine(fname + " is " + age);
}

static void Main(string[] args)
{
  MyMethod("Liam", 5);
  MyMethod("Jenny", 8);
  MyMethod("Anja", 31);
}

// Liam is 5
// Jenny is 8
// Anja is 31

运行实例 »

请注意,使用多个参数时,方法调用的参数数必须与参数数相同,并且参数的传递顺序必须相同。


返回值

上面示例中使用的void关键字表示该方法不应返回值。如果希望方法返回值,可以使用基本数据类型(如intdouble)而不是void,并在方法内使用return关键字:

实例

static int MyMethod(int x) 
{
  return 5 + x;
}

static void Main(string[] args)
{
  Console.WriteLine(MyMethod(3));
}

// 输出 8 (5 + 3)

运行实例 »

此示例返回方法的两个参数之和:

实例

static int MyMethod(int x, int y) 
{
  return x + y;
}

static void Main(string[] args)
{
  Console.WriteLine(MyMethod(5, 3));
}

// 输出 8 (5 + 3)

运行实例 »

您还可以将结果存储在变量中(推荐,因为这样更易于读取和维护):

实例

static int MyMethod(int x, int y) 
{
  return x + y;
}

static void Main(string[] args)
{
  int z = MyMethod(5, 3);
  Console.WriteLine(z);
}

// 输出 8 (5 + 3)

运行实例 »


命名参数

也可以使用 key: value语法发送参数。

这样,参数的顺序就无关紧要了:

实例

static void MyMethod(string child1, string child2, string child3) 
{
  Console.WriteLine("The youngest child is: " + child3);
}

static void Main(string[] args)
{
  MyMethod(child3: "John", child1: "Liam", child2: "Liam");
}

// 最小的孩子是: John

运行实例 »

当您有多个具有默认值的参数时,命名参数尤其有用:

实例

static void MyMethod(string child1 = "Liam", string child2 = "Jenny", string child3 = "John")
{
  Console.WriteLine(child3);
}

static void Main(string[] args)
{
  MyMethod("child3");
}

// John

运行实例 »