首页 > 代码库 > .Net基础加强04

.Net基础加强04

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举例