18 传值、输出、引用、数组、具名、可选参数、扩展方法

引用传参:
引用变量放进函数中会改变传入的argument
通过以下代码认识到引用变量是否以引用形式传入函数所导致的区别
如果打印地址,会发现值参数只是创建了一个新的引用变量指向同一段地址(副本)
而引用参数则代表你用的该变量和实参是同一个家伙
所以 new 之后的结果不一样

public void test()
        {
            int x = 10;
            ChangeInt(ref x);
            Demo_18_Student demo_18_Student = new Demo_18_Student();
            Console.WriteLine(demo_18_Student.Age);//10
            ChangeStudent_ref(ref demo_18_Student);
            Console.WriteLine(demo_18_Student.Age);//15
            ChangeStudent(demo_18_Student);
            Console.WriteLine(demo_18_Student.Age);//15
        }
        static void ChangeInt(ref int x)
        {
            x++;
        }
        static void ChangeStudent_ref(ref Demo_18_Student demo_18_Student)
        {
            demo_18_Student = new Demo_18_Student(15);
            Console.WriteLine(demo_18_Student.Age);//15
        }
        static void ChangeStudent(Demo_18_Student demo_18_Student)
        {
            demo_18_Student = new Demo_18_Student(20);
            Console.WriteLine(demo_18_Student.Age);//20
        }

输出形参:
相当于表明了该函数具有副作用
使用“out”关键词形容
具体原理是,创建一份副本,指向同一段地址
函数/方法 必须要对输出参数进行赋值
数组参数params:
● 必需是形参列表中的最后一个,由 params 修饰
● 举列:String.Format 方法和 String.Split 方法

class Demo_Params
    {
        public static void test()
        {
            int result = CalculateSum(1, 2, 3);
            Console.WriteLine(result);
        }

        static int CalculateSum(params int[] intArray)//必须作为最后一个参数
        {
            int sum = 0;
            foreach (var item in intArray)
            {
                sum += item;
            }

            return sum;
        }
    }

具名参数:
● 提高代码可读性
● 参数的位置不在受参数列表约束
具体就不示例了
可选参数:
参数因为带默认值而变得可选
可选参数必须跟在必须参数之后
扩展参数:
在这里插入图片描述
扩展方法必须在非泛型静态类中声明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值