1.面向对象多态:
virtual
abstract
接口
2.值类型,引用类型
3.值传递,引用传递(ref)
4.接口
int(C#推荐用) int32
5.枚举 -----标志枚举
6.里氏替换原则
7.异常 try - catch - finally{}
函数返回值(函数参数前的修饰符)
Params 可变参数,无论有几个参数,必须出现在参数列表的最后。可以为可变参数直接传递一个对应类型的数组
class Program { static void Main(string[] args) { //int sum= Add(10,20); //Console.WriteLine(sum); //30 //Console.ReadKey(); //Console.WriteLine("你好,我叫{0},今年{1}岁了,驾龄:{2}年了","叶长种",25,0); //Console.ReadKey(); //int sum = Add(10, 20, 30); int[] arrInt = { 1, 3, 5, 7, 9 }; //由于可变参数本身就是一个数组,所以可以直接传递一个数组进来 int sum = Add(arrInt); Console.WriteLine(sum); Console.ReadKey(); } //可变参数即便用户不传递任何参数,也可以(不传参数则数组是一个长度为0的数组,不是null) //可变参数只能出现在方法参数列表的最后一个 static int Add(params int[] nums) { int sum = 0; for (int i = 0; i < nums.Length; i++) { sum += nums[i]; } return sum; } //static int Add(int n, int m) //{ // return n + m; //} //static int Add(int n, int m, int l) //{ // return n + m + l; //} }
ref仅仅是一个地址,引用地址,可以把值传递强制改为引用传递。
out让函数可以输出多个值;
class Program { static void Main(string[] args) { int basicSalary = 1000; //ref的参数,要求传递进来的变量必须声明,并且赋值。 JiangjinNum1(ref basicSalary); JiangjinNum2(ref basicSalary); BaoXian(ref basicSalary); Console.WriteLine(basicSalary); Console.ReadKey(); } //奖金,优秀员工奖 static void JiangjinNum1(ref int salary) { salary += 500; } static void JiangjinNum2(ref int salary) { salary += 300; } static void BaoXian(ref int salary) { salary -= 300; } }
把上面的ref改为out则不行:
class Program { static void Main(string[] args) { int basicSalary; //ref的参数,要求传递进来的变量必须声明,并且赋值。 JiangjinNum1(out basicSalary); JiangjinNum2(out basicSalary); BaoXian(out basicSalary); Console.WriteLine(basicSalary); Console.ReadKey(); } //奖金,优秀员工奖 //out参数特点:1.传递到out参数中的变量,声明不需要赋值,赋值也没有意义 //2.在out参数所在的方法中,out参数必须赋值,并且在使用前赋值 //3.当方法中有多个返回值得时候可以考虑out static void JiangjinNum1(out int salary) { salary += 500; } static void JiangjinNum2(out int salary) { salary += 300; } static void BaoXian(out int salary) { salary -= 300; } }
class Program { static void Main(string[] args) { } static void M1(ref int n) { n++; Console.WriteLine(n); } static void M2(out int n) { n = 10; Console.WriteLine(n); } }
两个变量的交换:
class Program { static void Main(string[] args) { int num1 = 10; int num2 = 20; Swap(ref num1,ref num2); Console.WriteLine(num1); Console.WriteLine(num2); Console.ReadKey(); } static void Swap(ref int n1, ref int n2) { int temp = n1; n1 = n2; n2 = temp; } }
out举例
原文地址:http://www.cnblogs.com/yechangzhong-826217795/p/3862613.html