日期:2014-05-18  浏览次数:20785 次

void fun(int a) 和void fun(ref int a)是重载吗?
void fun(int a) 和void fun(ref int a)是重载吗?
我试了一下,是重载。但是我不太理解。谁能给我解释一下吗?

------解决方案--------------------
重载就是函数函数名相同,函数参数的个数或类型不同,且可以有不同的返回值。
就你的这个函数,肯定是参数的类型不一致。
首先给你介绍下ref:
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。
第一个参数的类型是int型,是值类型,第二个参数的类型是引用类型,参数类型不同,所以当然是重载了啦!
------解决方案--------------------
解释一句话吧:
根据函数重载的定义:void fun(int a) 和void fun(ref int a)里的,
第一是值类型;第二个是引用类型。因为其两个函数的类型不同,所以可以
重载!