格式:
修饰符 返回值的类型 方法名(形参)
{
方法体语句
}
修饰符:static修饰的方法是静态方法,用其它修饰符修饰的方法是动态方法
返回值类型:如方法无返回值,用void
形参:多个形参用逗号分隔,无形参则为空
向方法传递参数
值参数调用:函数默认的参数类型,不含任何关键字,将实参复制一份,传递给形参,不影响方法外的实参变量
引用参数调用:
含关键字,实参和形参都指向同一存储空间,影响方法外的实参变量
1.ref 关键字:输入参数
static void Swap(ref int a, ref int b)
{
int t;
t = a;
a = b;
b = t;
Console.WriteLine("在方法Swap中,a={0},b={1}", a, b);
}
static void Main(string[] args)
{
int a = 5;
int b = 10;
Console.WriteLine("调用方法Swap前,a={0},b={1}", a, b);
Swap(ref a, ref b);
Console.WriteLine("调用方法Swap后,a={0},b={1}", a, b);
Console.ReadKey();
}
2.out 关键字:输出参数
static void OutMethod(out int i)
{
i = 10;
}
static void Main(string[] args)
{
int val = 10;//是否有值,无影响
OutMethod(out val);
Console.WriteLine(val);
Console.ReadKey();
}
数组参数调用
params 关键字,用于方法参数列表长度不定的情况,params关键字后不允许有任何形参,且只有一个
格式:
(数据类型 参数名,数据类型 参数名,…,params 数据类型[]数组名)
数组参数可以传递 数量不定的参数序列,数组
不可以传递 集合(泛型集合与非泛型集合),因为类型无法转化
static void fangfa(params int[] list)
{
}
static void Main(string[] args)
{
fangfa(1, 2, 3);
int[] array = { 1, 2, 3 };
fangfa(array);
}
方法重载:
方法名相同,参数不同(参数类型,参数个数,参数顺序),就可以区分为不同方法
Main方法:作为 控制台应用程序,窗口应用程序的入口点
1.程序控制在该方法开始和结束
2.在 类或结构 中声明,必须是静态方法,修饰符 static
3.返回值有两种 void int
4.在声明时,可以包含命令行实参 string[]形参,也可以不用参数
static void Main(string[] args)
{
string str = Console.ReadLine().ToString();
Console.WriteLine(str);
Console.ReadKey();
}
static void Main()
{
string str = Console.ReadLine().ToString();
Console.WriteLine(str);
Console.ReadKey();
}
//上面两个Main()函数作用一样,都可以输入输出
5.与C和C++不同,C#不将 程序名 视为第一个命令行实参