C#的函数使用 和参数修饰符 out ref params
// 函数和方法
// 函数好比对象的动作行为 在定义函数的时候,职责(作用/功能)越单一越好 满足高内聚 低耦合的开发思路
// 变量的命名规则 小驼峰
// 函数的命名规则 大驼峰 动词开头
// 函数的参数 参数可以认为是外部需要函数帮忙处理的数据 外部通过传参的形式把需要处理的参数传递给函数处理
// 函数的返回值 可以理解为外部调用某种行为(函数)后得到的一种反馈;
// 函数的声明
//public int Add(int i, int y)
//{
// return 123;
//}
// 参数修饰符
// 无参数修饰符 默认 值传递 就是形参是实参的副本 形参的改变不会影响实参的值
// out 修饰符 输出的参数由被调用的方法赋值 引用传递(地址传递) 调用的时候不赋值
// void add(int i,int y,out int res)
//{
// res = i + y;
//}
// 调用的时候也要加上修饰符 out res是变量 形参的改变影响实参的值 res
//add(10,20,out int res); // ps 调用函数的时候 由out修饰的形参必须要在函数体里面赋值 否则报错
// ref 修饰符 调用者赋初值 也可以由被调用的方法重新赋值(引用传递) ps:被调用的方法未能给ref参数赋值 不会报错(out会报错)
// void sub(int i,int y,out int res = 10)
//{
// res1 = i + y; // 就算不给 ref 参数 res 赋值也不报错
//}
// sub(10,20,ref int res = 100) // ref 参数赋初值
// params params只能作为形参的最后一个参数 是一个可变的参数值
// 这个参数修饰符允许将一组可变的数量的参数作为单独逻辑参数进行传递
// 方法之能有一个params修饰符 而且必须是方法最后一个参数
// out 和 ref 的区别
// 1. out 修饰的参数必须在方法内修改 ref 可以修改也可以不修改
//2 . out 在传入参数的时候,out不用赋值, ref 必须赋值