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

.Net基础加强04,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。