C# out ref 重载

          今天看极客学院wiki时候看到了out,ref的介绍,之前对这个知识点没有深刻认识,所以就写了个小测试看了下,瞬间明白了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //1、两都在函数体的任何修改都将影响到外面。
            //2、ref必段在函数体外初始化。
            //3、out必须在函数体内初始化,在外面初始化没意义。也就是说,out型的参数在函数体内不能得到外面传进来的初始值。
            int i = 3;
            int k = 9;
            int m;
            int n = 10;
            ADD(i, k);
            ADD(out m, ref n);
            Console.WriteLine("i={0}",i);
            Console.WriteLine("k={0}", k);
            Console.WriteLine("m={0}", m);
            Console.WriteLine("n={0}", n);
            Console.ReadLine();
        }
        public static void ADD(out int i, ref int k)
        {
            i = 5;
            k = k - 4;
        }
        public static void ADD(int i, int k)
        {
            i = i - 5;
            k = k - 4;
        }
    }
}

结果:

 


看完这个后,又联想到了,重载的定义。

重载:同一个作用域内发生,定义一系列同名方法,但是方法的参数列表不同。然后我就迷糊了,我们这里采用out,ref 定义的方法参数列表算是重载么?

我们通过关键字的不同,运行过程调用了不同的方法。我们可以认定为方法的重载。

学习过程参阅了: http://blog.youkuaiyun.com/xiaoning8201/article/details/6893154

学习笔记,如有错误,欢迎批评指正。

转载于:https://www.cnblogs.com/kim-meng/p/4979463.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值