C#关于方法的简单概念
方法论 :方法(method)也叫函数(function)
广义:
未获得某种东西或达到某种目的而采取的手段与行为方式。
狭义:
方法是指一系列的程序语句组成的代码块
特性: 1.带名字的代码段 2.方法是代码重复使用的重要手段,是重用的基本手段:无论是现实世界还是程序世界,都以方法来达到重用的目的
定义语法:[]表示可选 <>表示必备
[访问修饰符][修饰符]<返回值类型 (void)><方法名>([参数列表])
方法可以出现的位置: 类(class)、结构体(struct)中 。
方法遇到return会立即结束。
命名规则:
方法名开头大写,参数名开头小写 ,方法名、参数名、变量名要有意义;
方法的调用
方法大多数会在其他方法内部被调用
调用的规则:
1.调用者和被调用者相互可见。 2,调用者和被调用者相互不可见,需要追加类名。
方法的呼叫(带反馈结果)
String result = Function3("1","2","3");
返回值类型
任意的数据类型或者void
void表示该方法无返回值
方法有无返回值取决于方法的调用者是否需要返回值
参数:
形式参数:在编写方法的时候 预定义的参数
实际参数:在实际调用(使用)方法的时候 传入方法的参数
参数的类型:
形式参数:任意的数据类型 由方法编写者在预定义时限定
实际参数:任意的数据类型(和形式参数匹配)在方法的调用者中定义赋值
参数数组 params 通过关键字params定义参数数组,调用时可以传入个数不同的实参,具备很好的灵活性。
参数数组必须为参数列表的最后一个参数,参数列表之前可以设置其他的参数。
值类型和引用类型
值类型:基本数据类型 ,枚举和结构体
引用类型:数组,类(string),接口等
值类型和引用类型的区别:
通俗回答:
值类型相当于单独的一个箱子 直接操作箱子内的内容
引用类型相当于管理存储箱子的管理员
1.声明时:
值类型:新产生一个箱子 等待存储
引用类型:产生一个箱子管理员等待一个箱子
2.被赋值
值类型:将新的内容直接放在箱子内
引用类型:和=右边的管理员一起管理同一个箱子
面试回答:
1.值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的
是堆中存放的地址。
2.值类型存取快,引用类型存取慢。
3.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4.栈的内存是自动释放的,堆内存是.NET 中会由 GC 来自动释放。
5.值类型继承自 System.ValueType,引用类型继承自 System.Object。
ref 和 out
传递的都是地址引用而不是值
1,形参和实参指向同一地址
2,始终保证形参和实参指向同一地址
区别: out只出不进,ref又进又出。
当返回值多于一个时选择out出参。
参数的传递大致分为三类:
默认传参(无修饰传参)值传参
ref修饰传递参数 地址传参
out修饰传递参数 出参