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

C# Methods

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

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

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

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

创建一个方法

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

示例:

1class Program 2{ 3 static void MyMethod() 4 { 5 // 要执行的代码 6 } 7}

示例解释

  • MyMethod() 是方法的名称。
  • static 表示该方法属于 Program 类而不是 Program 类的对象
  • void 表示该方法没有返回值
  • 注意:在 C# 中,以大写字母开头的命名方法是一种良好的实践,因为它使代码更易于阅读。

调用一个方法

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

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

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

1static void MyMethod() 2{ 3 Console.WriteLine("I just got executed!"); 4} 5 6static void Main(string[] args) 7{ 8 MyMethod(); 9} 10 11// 输出 "I just got executed!"

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

示例

1static void MyMethod() 2{ 3 Console.WriteLine("I just got executed!"); 4} 5 6static void Main(string[] args) 7{ 8 MyMethod(); 9 MyMethod(); 10 MyMethod(); 11} 12 13// I just got executed! 14// I just got executed! 15// I just got executed!

C# Method Parameters

参数和实参

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

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

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

示例:

1static void MyMethod(string fname) 2{ 3 Console.WriteLine(fname + " Refsnes"); 4} 5 6static void Main(string[] args) 7{ 8 MyMethod("Liam"); 9 MyMethod("Jenny"); 10 MyMethod("Anja"); 11} 12 13// 输出 14// Liam Refsnes 15// Jenny Refsnes 16// Anja Refsnes

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

多个参数

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

示例

1static void MyMethod(string fname, int age) 2{ 3 Console.WriteLine(fname + " is " + age); 4} 5 6static void Main(string[] args) 7{ 8 MyMethod("Liam", 5); 9 MyMethod("Jenny", 8); 10 MyMethod("Anja", 31); 11} 12 13// 输出 14// Liam is 5 15// Jenny is 8 16// Anja is 31

C# Default Parameter Value

默认参数值

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

如果我们调用该方法而没有提供实参,则它将使用默认值("Norway"):

示例:

1static void MyMethod(string country = "Norway") 2{ 3 Console.WriteLine(country); 4} 5 6static void Main(string[] args) 7{ 8 MyMethod("Sweden"); 9 MyMethod("India"); 10 MyMethod(); 11 MyMethod("USA"); 12} 13 14// 输出 15// Sweden 16// India 17// Norway 18// USA

带有默认值的参数通常被称为"可选参数"。从上面的示例中,country 是一个可选参数,"Norway" 是默认值。

C# Return Values

返回值

在前一页中,我们在所有示例中使用了 void 关键字,该关键字表示该方法不应返回任何值。

如果您希望方法返回一个值,可以使用基本数据类型(如 intdouble)而不是 void,并在方法内部使用 return 关键字:

示例:

1static int MyMethod(int x) 2{ 3 return 5 + x; 4} 5 6static void Main(string[] args) 7{ 8 Console.WriteLine(MyMethod(3)); 9} 10 11// 输出 8 (5 + 3)

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

示例

1static int MyMethod(int x, int y) 2{ 3 return x + y; 4} 5 6static void Main(string[] args) 7{ 8 Console.WriteLine(MyMethod(5, 3)); 9} 10 11// 输出 8 (5 + 3)

您还可以将结果存储在变量中(建议使用,因为这样更易于阅读和维护):

示例

1static int MyMethod(int x, int y) 2{ 3 return x + y; 4} 5 6static void Main(string[] args) 7{ 8 int z = MyMethod(5, 3); 9 Console.WriteLine(z); 10} 11 12// 输出 8 (5 + 3)

C# Named Arguments

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

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

示例:

1static void MyMethod(string child1, string child2, string child3) 2{ 3 Console.WriteLine("The youngest child is: " + child3); 4} 5 6static void Main(string[] args) 7{ 8 MyMethod(child3: "John", child1: "Liam", child2: "Liam"); 9} 10 11// 输出 The youngest child is: John

C# Method Overloading

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

示例:

1int MyMethod(int x) 2float MyMethod(float x) 3double MyMethod(double x, double y)

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

示例

1static int PlusMethodInt(int x, int y) 2{ 3 return x + y; 4} 5 6static double PlusMethodDouble(double x, double y) 7{ 8 return x + y; 9} 10 11static void Main(string[] args) 12{ 13 int myNum1 = PlusMethodInt(8, 5); 14 double myNum2 = PlusMethodDouble(4.3, 6.26); 15 Console.WriteLine("Int: " + myNum1); 16 Console.WriteLine("Double: " + myNum2); 17}

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

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

示例

1static int PlusMethod(int x, int y) 2{ 3 return x + y; 4} 5 6static double PlusMethod(double x, double y) 7{ 8 return x + y; 9} 10 11static void Main(string[] args) 12{ 13 int myNum1 = PlusMethod(8, 5); 14 double myNum2 = PlusMethod(4.3, 6.26); 15 Console.WriteLine("Int: " + myNum1); 16 Console.WriteLine("Double: " + myNum2); 17}

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

最后

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

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

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

点赞
收藏

评论区

加载中...

相关推荐

28、可变参数和集合数组的互转

可变参数在定义方法的时候不确定该定义多少个参数时,可以使用可变参数来定义,这样方法的参数个数会根据调用者来确定。注意:如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。格式:修饰符返回值类型方法名(数据类型…变量名){}例:publicclasslist_test

C# 方法

一、简介方法可以称为函数,函数又可以称为方法,方法主要的作用是将一堆代码进行重用的一种机制,避免太多的冗余的代码,还有方便后期维护。二、语法函数的语法:publicstatic返回值类型方法名(参数列表){方法体;}  描述:public

C# 创建线程的多种方式之异步调用基础知识

创建线程一种简单的方式是委托的异步调用,Delegate类提供了BeginInvoke方法,该方法可以传递委托类型定义的参数(所以BeginInvoke参数数量是可变的),另外还有2个固定的参数回调函数委托AsynsCallBack和类型Object(如果不使用可直接赋值为null)。BeginInvoke()的返回值为IAsynResult,通过它

Java 中的方法

定义一个方法的语法是:访问修饰符 返回值类型 方法名(参数列表){方法体;}其中:1、访问修饰符:方法允许被访问的权限范围,可以是public、protected、private甚至可以省略 ,其中public表示该方法可以被其他任何代码调用, protected只有子类可用, pr

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

获取目标方法的信息    访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点。JoinPoint里包含了如下几个常用的方法:Object\\getArgs:返回目标方法的参数Signature

Java中方法的重载与覆盖(随笔01)

方法重载(Overlord)。方法重载:指在同一个类中,允许在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关(例如:构造方法重载)。。参数列表:个数不同,数据类型不同,顺序不同;。重载方法调用:JVM通过方法的参数列表,调用不同的方法。!(https://oscimg.oschina.net/oscnet/0