黑马程序员------------方法参数返回值

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

方法

功能:用来重复代码的。当我们在一个程序中反复的写了同样的代码,那一半情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了

语法:
{访问修饰符}[static] 返回值类型 方法名([参数])
{
方法体;
}
方法名命名规则:
方法名开头大写,参数名开头小写,参数名、变量名要有意义
如何调用方法:
对于静态方法(由static修饰的方法)
1、如果在同一个类中,直接写名字调用就行了

语法:方法名();

2、如果不在同一个类中,要先在方法名前面加上要调用的方法所在的类名称

语法:类名.方法名(); 
举例:Console.ReadLine(); 
如何退出方法:
return;
举例:
public static string fangfa(strring canshu)
		{
			fangfati;
		}


注:1、一般情况下,方法一般定义在类中
2、如果方法中没有返回值,则返回值类型写void
3、如果没有参数,则小括号()不能少
已经学过的常用的方法:
	1、Console.ReadLine();
	2、Console.WriteLine();
	3、Console.Write();
	4、Console.ReadKey();
	5、int.Parse(string);
	6、Convert.ToInt32(string);




二、参数
变量的作用域(变量的生命周期):
在方法中定义的变量,称为局部变量,其作用域是在从定义开始使用到其所在的大括号(语句块)结束为止
为什么要使用参数?
当被调用者想得到调用者方法中的变量时,则可以让调用者调用这参数的形给被调用者
举例:

调用者:
<span style="white-space:pre">	</span>string canshu="张三"
	fangfa(canshu);


被调用者:
<span style="white-space:pre">	</span>public static string fangfa(strring canshu) //形参
		{
			fangfati;
		}


在方法名后面的括号内定义变量,叫做定义这个方法的参数
这里定义的变量用于接收调用者传过来的数据
注:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致

三、返回值
为什么要使用返回值?
当调用者想反问方法中的变量时,我们可以通过返回值返回。
举例:
string s=Console.ReadLine();
int i=Convert.ToInt32("22");
为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值
只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值
注:一个方法只能有一个返回值
一旦一个方法有返回值,那么在这个方法体中就必须通过return语句返回一个值,并且这个值要与返回值类型是相同的
语法:return 值;
当传入的形参是数组是,只需要传数组的名称就可以了

当调用者需要使用被调用者(方法)中的变量时,使用返回值
当被调用者(方法)需要使用调用者的变量时,使用参数

四、方法的重载
定义:
一般在同一个类中,方法名相同并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载
注意:方法重载和返回值没有关系

五、利用参数返回值
当需要一个方法返回多个值时,怎么返回? 答:参数
实现步骤:
1、在方法的参数类型前加out,那么传参数的时候,也必须在传入的参数前面加上out,表明这个参数不是传入的值,而是用来传出值的
2、如果参数是以out形式传入的,那么在传入前可以不用赋初值
3、在方法中,对于由out修饰的参数必须赋值,并且必须在使用前赋值
举例:
    
class Program
    {
        static void Main(string[] args)
        {
			//由于在传参的时候前面加了out,所以此处的赋值无意义
            int a = 10;
            int age = Age(out a);
            Console.WriteLine("此时a的值为{0},age的值为{1}",a,age);
            Console.ReadKey();
        }
        public static int Age(out  int age)
        {
			//在使用前,参数必须在方法内先赋值
            age = 15;
            age = age + 10;
            return age;
        }
    }



out用户传出值,在方法中必须对out修饰的参数进行赋值
ref可以理解成双向传值,也就是说既可以传入值,又可以传出值

    static void Main(string[] args)
        {
            int number = 100;
            test(ref number);
            Console.WriteLine(number);
            Console.ReadKey();
        }
        static void test(ref int a)
        {
            a = 500;
        }


在传参数的过程中,如果参数中有out或者ref修饰的话,那么改变方法中的参数的值,那么调用者方法中参数的额值也会相应改变



---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

详细请查看:www.itheima.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值