1.方法的定义
方法是一种用于实现可以由对象或类执行的计算或操作的成员。
2.方法的声明
<Access Specifier> <Return Type> <Method Name>(Parameter List)
{
Method Body
}
下面是方法的各个元素:
<访问修饰符><返回类型><方法名称>(参数列表)
{
方法主体
}
- Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
- Return type: 返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void。
- Method name: 方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。
- Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。
- Method body:方法主体,包含了完成任务所需的指令集。
在C#中,方法声明的修饰符有以下几种:
public
:方法可以被任何其他类访问。protected
:方法只能被同一类和其派生类访问。private
:方法只能在其所在的类中访问。internal
:方法只能在其所在的程序集中访问。protected internal
:方法只能被同一程序集中的派生类访问。
3.方法的分类
方法分为静态和非静态方法,
A. 静态方法
静态方法不对特定实例进行操作,在静态方法中引用this会导致编译错误。
例:
public static int Add(int x, int y) //定义一个静态方法
{
return x+y;
}
static void Main(string[]args)
{
Console.WriteLint("结果为:"+Prongram.Add(3,5)); //使用类名调用静态方法
}
B.非静态方法
非静态方法是对类的某个给定的实例进行操作,而且可以用this来访问该方法。
例:
public int Add(int x, int y) //定义一个非静态方法
{
return x+y;
}
static void Main(string[]args)
{
Prongram prongram =new Prongram(); //实例化类对象
Console.WriteLint("结果为:"+Prongram.Add(3,5)); //使用类对象调用定义的非静态方法
}
PS: 调用非静态方法时,可以使用this关键字
4.方法的重载
方法的重载是指调用同一方法名,但是方法中参数的数据类型,个数,或顺序不同
例:
using System;
class Program
{
static void Main(string[] args)
{
// 调用无参数方法
Print();
// 调用有一个整数参数的方法
Print(10);
// 调用有两个整数参数的方法
Print(10, 20);
// 调用有一个字符串参数的方法
Print("Hello");
}
// 定义一个无参数的方法
static void Print()
{
Console.WriteLine("无参数方法");
}
// 定义一个有一个整数参数的方法
static void Print(int num)
{
Console.WriteLine("有一个整数参数的方法,整数为:" + num);
}
// 定义一个有两个整数参数的方法
static void Print(int num1, int num2)
{
Console.WriteLine("有两个整数参数的方法,整数为:" + num1 + ", " + num2);
}
// 定义一个有一个字符串参数的方法
static void Print(string str)
{
Console.WriteLine("有一个字符串参数的方法,字符串为:" + str);
}
}
PS: 比如定义一个发送数据的方法,提前在类库中写好方法,方便以后灵活调用