写点什么

C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析

作者:小万哥
  • 2024-01-24
    广东
  • 本文字数:2465 字

    阅读完需:约 8 分钟

C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析

C# Methods

方法是一段代码,只有在调用时才会运行。


您可以将数据(称为参数)传递给方法。


方法用于执行某些操作,也被称为函数。


为什么使用方法?为了重用代码:定义一次代码,然后多次使用。


创建一个方法


方法的定义以方法的名称开头,后跟括号()。C#提供了一些预定义的方法,您已经熟悉,例如 Main(),但您也可以创建自己的方法来执行某些操作:


示例:


class Program{  static void MyMethod()   {    // 要执行的代码  }}
复制代码


示例解释


  • MyMethod() 是方法的名称。

  • static 表示该方法属于 Program 类而不是 Program 类的对象

  • void 表示该方法没有返回值

  • 注意:在 C# 中,以大写字母开头的命名方法是一种良好的实践,因为它使代码更易于阅读。


调用一个方法


要调用(执行)一个方法,请写上方法的名称,后跟两个括号()和一个分号;


在以下示例中,当调用 MyMethod() 时,它用于打印一个文本(操作):


示例Main() 中,调用 MyMethod() 方法:


static void MyMethod() {  Console.WriteLine("I just got executed!");}
static void Main(string[] args){ MyMethod();}
// 输出 "I just got executed!"
复制代码


一个方法可以被多次调用:


示例


static void MyMethod() {  Console.WriteLine("I just got executed!");}
static void Main(string[] args){ MyMethod(); MyMethod(); MyMethod();}
// I just got executed!// I just got executed!// I just got executed!
复制代码

C# Method Parameters

参数和实参


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


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


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


示例:


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
复制代码


当将参数传递给方法时,它被称为实参。因此,从上面的示例中可以看出:fname 是一个参数,而 LiamJennyAnja 是实参。


多个参数


您可以有任意数量的参数,只需用逗号分隔即可:


示例


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
复制代码

C# Default Parameter Value

默认参数值


您还可以使用默认参数值,通过使用等号(=)。


如果我们调用该方法而没有提供实参,则它将使用默认值("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" 是默认值。

C# Return Values

返回值


在前一页中,我们在所有示例中使用了 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)
复制代码

C# Named Arguments

也可以使用键:值语法发送参数。


这样,参数的顺序就不重要了:


示例:


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");}
// 输出 The youngest child is: John
复制代码

C# Method Overloading

通过方法重载,多个方法可以具有相同的名称但具有不同的参数:


示例:


int MyMethod(int x)float MyMethod(float x)double MyMethod(double x, double y)
复制代码


考虑以下示例,其中有两个添加不同类型数字的方法:


示例


static int PlusMethodInt(int x, int y){  return x + y;}
static double PlusMethodDouble(double x, double y){ return x + y;}
static void Main(string[] args){ int myNum1 = PlusMethodInt(8, 5); double myNum2 = PlusMethodDouble(4.3, 6.26); Console.WriteLine("Int: " + myNum1); Console.WriteLine("Double: " + myNum2);}
复制代码


与定义两个应该执行相同操作的方法相比,最好重载一个方法。


在下面的示例中,我们对 PlusMethod 方法进行了重载,使其适用于 int 和 double:


示例


static int PlusMethod(int x, int y){  return x + y;}
static double PlusMethod(double x, double y){ return x + y;}
static void Main(string[] args){ int myNum1 = PlusMethod(8, 5); double myNum2 = PlusMethod(4.3, 6.26); Console.WriteLine("Int: " + myNum1); Console.WriteLine("Double: " + myNum2);}
复制代码


注意:只要参数的数量和/或类型不同,多个方法可以具有相同的名称。

最后

为了方便其他设备和平台的小伙伴观看往期文章:


微信公众号搜索:Let us Coding,关注后即可获取最新文章推送


看完如果觉得有帮助,欢迎 点赞、收藏、关注

发布于: 刚刚阅读数: 5
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析_C#_小万哥_InfoQ写作社区