1、定义方法与调用
定义方法一般包括:修饰符,返回类型,方法名,参数,方法体
下面示例中,定义了一个无参数无返回值的方法,与一个有参数有返回值的方法,以及如何在主函数中调用,为了演示方便,在方法前加上了修饰符static,表示这个方法是静态方法,可以直接调用,如果不是静态方法则需要使用类对象进行调用。
static void Main(string[] args)//程序入口,主函数
{
//无参无返回值的方法,直接调用即可
outprint();
//调用有参数的方法,需传入实参
//如需得到返回值,一般需要一个变量来接受
int result = add(5, 6);
}
static void outprint()//修饰符 返回类型 方法名
{
Console.WriteLine("hello !");//方法体
}
static int add(int a, int b)//修饰符 返回类型 方法名 形参
{
int s = a + b;
return s;//返回值
}
2、方法重载
本质上是多个方法,但是方法名相同,且方法的参数个数或者参数类型不同,构成重载关系,调用时只需要传入不同的参数,就可以使用重载执行不同的方法体。
static void Main(string[] args)
{
//根据传入的实参不同,执行不同的方法体
methodCW("龙傲天");
methodCW(55);
}
static void methodCW(string str)
{
Console.WriteLine("这是一个字符串:" + str);
}
static void methodCW(int a)
{
Console.WriteLine("这是一个整形数字:" + a);
}
程序执行输出结果如下
从输出结果可以看出执行了不同的方法体。
3、参数修饰符
(1)ref 引用参数
用于需要对实参本身进行操作的时候
//ref 是引用变量地址,而普通的参数 int a 只是复制传入的实参,无法直接对变量本身进行更改
static void ExChange(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
(2)out 输出参数
主要用于获取多个返回值,在方法返回前必须赋值
解决了C#方法只能有一个返回值的问题
static void Main(string[] args)
{
int s;
int c = methodaa(5, 6, out s);//调用时,s 无需赋值
Console.WriteLine(c+","+s);
}
//out 修饰符 也是引用变量地址
//并且out 参数,在方法返回前必须赋值
//这样就解决了C#方法只能有一个返回值的问题
static int methodaa(int a, int b, out int s)
{
s = a + b;
return a - b;
}
(3)params 参数数组
可以实现,传入任意个参数,没有参数个数的限制
static void Main(string[] args)
{
float sum = GetSum(2, 1.2f, 3.1f);
}
static float GetSum(params float[] array)
{
float sum = 0;
for (int i = 0; i < array.Length; i++)
{
sum += array[i];
}
return sum;
}