day07
2017-02-13 16:31:57 0 举报
AI智能生成
day07
作者其他创作
大纲/内容
方法的调用问题
变量的作用域
在各自代码段中独立有效
方法中的简单变量为值传递,方法内使用的是复制体,包括string类型
变量的传递方式
1、参数
2、类中定义静态字段,来模拟全局变量,c#中没有全局变量这个东西
上面的两种方法是在没有讲到类时候的方法,即不能创建对象,
函数本身也是静态的,可以在静态函数中访问静态字段,另外
在方法中不能定义静态变量
函数本身也是静态的,可以在静态函数中访问静态字段,另外
在方法中不能定义静态变量
字段
c#类中的字段也是遵循camel规则,以下划线开头,可以在定义时赋初值
vs中以下划线开头的字段,输入时可以直接输入字母,会自动出现提示,不同先输入下划线
方法的设计
1、方法的功能要单一
2、方法中最忌讳的是出现提示用户输入的字样
因为这样写就限定了只能在控制台中使用,这个方法在winform,ASP,数据库里面用不了
out参数的使用
适用情况
返回多个返回值,如求一个数组的最大值,最小值,总和与平均值
如果多个返回值类型相同,可以返回数组,
但如果多个返回值类型不同,就要用out了。
但如果多个返回值类型不同,就要用out了。
使用
实参和形参前都要加上out
public static void MArray(int[] arr,out int max,out int min,out int sum,out int avg)
注意
方法要求内部所有的out形参必需赋值或者修改值
ref参数的使用
适用情况
在一个方法中修改方法外面的数据
使用
public static void Add(ref double d)
注意
声明为ref或者out的方法,调用时必须加上ref或者out
out和ref的区别
out参数要求被调用函数结束前,必须给out类型的参数赋值,在被调用函数的外面,out参数可以不赋值
定义-调用-赋值-返回
ref参数要求在调用函数传递参数时必需已经有值,在被调用函数里可以修改也可以不修改
定义-赋值-调用-【修改】-返回
params可以变参数的使用
适用情况
参数数量不一定的时候,如求,2个,3个,n个数的和
使用
public static int GetSum(params int[] arr)
在函数中遍历数组arr即可获得所有可变参数
调用时不用谢params关键字
实参给出一堆与params数组类型相同的数据即可,能隐式转换的也可以
实参给出数组也可以
注意
函数的参数可以混合使用普通参数和params参数,但params参数必需在列表的最右侧
可变参数也可以和默认参数,普通参数同时使用,
但这样意义不大,而且容易引起混淆
但这样意义不大,而且容易引起混淆
(普通参数,默认参数,可变参数)
一个参数列表中只能出现一个可变参数数组
方法的重载
适用情况
功能相同,但是参数不同的方法
如对两个参数相加,int或者string
如对2个数相加,3个数相加
使用
定义多个同名方法,这些方法唯一的不同是参数列表不同
1、参数数量不同,参数类型相同
2、参数类型不同,参数数量相同
如果参数的数量和类型都相同,则编译器报错,不可定义重名方法
注意
重载与方法的返回值无关,与形参名称无关
方法的递归
适用情况
方法自己调用自己
适用于一个数依赖于前面的数,最前面的数已知的情况,如斐波纳西亚数列
或者找出一个文件夹中所有的文件
注意
递归必需要有出口,即方法开头必需有if判断,用来结束递归
0 条评论
下一页