方法:
将一堆代码进行重用的一种机制(定义在类中)
(1)语法:
[访问修饰符][static]返回值类型 方法名([参数])
(注意:
参数:要告诉方法的内容 (若是没有参数,则( )不可以省略)
参数作用域:就是在方法体中的
返回值:返回的执行结果(若是没有返回值,则返回值类型为void)
[]里边的内容可以写可以不写
命名规则:方法名开头大写,参数名开头小写,参数名和变量名都要有意义
)
(2)一个方法只有一个返回值;一旦一个方法有了返回值,就必须通过return返回一个值,并且这个值要与它的返回值类型是相同的
(3)当形参是数组名的时候,我们传数组名即可。
(4)方法的重载:一般在同一个类中,方法名相同,并且方法的参数个数不同或者对应位置上的类型不同,才可以够成方法的重载
(注意:方法的重载和返回值类型无关)
参数(形式参数)
例:
public static void PrintSum(int x,float y) //定义了一个为int类型的变量x和一个float类型的变量y
{·····}
public static void PrintSum(int x,float y) //定义了一个为int类型的变量x和一个float类型的变量y
{·····}注:形参是声明在方法的参数列表中的,而不是方法体中的本地变量。如果一个方法一旦有一个参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型须一致
定义数组参数的语法:
[访问修饰符] [static] 返回值类型 方法名(params int [ ] 数组名)
例:
public static void Sum(params int [] sscore)
public static void Sum(params int [] sscore)返回值
方法可以向调用代码返回一个值,返回的值被插入到调用代码中发起调用的表达式所在的位置。
注:要返回值,方法必须在方法名前声明一个返回类型,如果方法不返回值,他必须声明void返回类型。
(5)经典练习
1.读取要输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户一直重新输入)
public static int ReadInt() //返回一个整形
{
int s = 0;
do
{
//若用户输入的是整数,则返回,否则进入catch,一直循环,直到输出整数
try
{
s = Convert.ToInt32(Console.ReadLine());
return s;
}
catch /
{
Console.WriteLine("输入有误,请重新输入");
}
}
while (true);
Main()中:Console.WriteLine("请输入您的出生年份");
int year=ReadInt(); //定义一个变量接收返回值
Console.WriteLine("您的出生年份是{0}",year);
求两个值中的最大值
public static int Max(int i1, int i2)
{
//若是i2大则返回i2,否则返回i1
if (i1 < i2)
{
return i2; }
else
{
return i1;
}
}
Main()中:
int M=Max(61, 22);
Console.WriteLine("最大值为"+M);
计算数组的和
public static int Sum(int[] numbers)
{
int sum = 0;
for (int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
}
return sum;
}
Main()方法中:
int[] scores = { 12, 22, 33 };
//因为方法中的形参是数组,在这里我们可以直接传数组名
int s = Sum(scores);
Console.WriteLine("总和为"+s);
方法的out参数和ref参数
(1)out参数:往外返回一个值
1. int number;
int result=Test(out number);
Console.WriteLine(number);
Console.WriteLine(result);
public static int Test( out int a)
{
a = 200;
return a;
}
此时得到number的值为200,result的值为200
它的实现步骤:
1)在方法的参数面前加out,那么传参数的时候,也必须在number前加out,表明这个参数时传入的,而不是传出的。
2)如果参数是以out形式传入的,那么在传入前可以不付初值
3)在方法中对于有out修饰的参数,必须赋值,并且必须在使用之前
2.写一个方法,计算一个int类型数组中的每个元素的总和、最大值以及最小值
int[] score = { 11, 22, 44, 1, 2, 4, 99, 66 };
int ma;//接收返回来的值
int mi;
int sum = compute(score, out ma, out mi);//传递一个数组名
Console.WriteLine("最大值是{0},最小值是{1},和为{2}",ma,mi,sum);
public static int compute(int[] nums,out int max,out int min)
//nums表示传入的数组,max和min是被传出的值
{
max=nums[0]; //被out修饰的参数,必须先赋值
min=nums[0];
int sum=0;
for(int i=0;i
{
if(nums[i]>max)
{
max=nums[i];
}
if(nums[i]
{
min=nums[i];
}
sum+=nums[i];
}
return sum; //返回sum
}
(2)ref参数:它是双向的既能够往外返值,也能能往里边传值(在方法中可以赋值也可以不赋值)
(3)在传参数过程中,如果参数有out和ref,那么改变方法中的参数变量的值,调用者中方法的变量的值也会相应随之改变
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------