A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 诱惑灵魂 中级黑马   /  2013-12-16 23:47  /  1837 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 诱惑灵魂 于 2013-12-19 20:55 编辑

看很多人知道方法的重载:要求方法名相同,参数不同。参数不同又分为参数类型不同,参数个数不同。一般说是这两种。
我想说的就是还有一种参数列表不同是否也构成重载,通俗点就是参数顺序不同,在编译的时候不报错,这种应该也构成重载的,对吧?望同学具体的剖析下,最好有代码

7 个回复

正序浏览
V_John 中级黑马 2013-12-19 18:01:39
8#
如果问题得到解决,请修改为已解决
回复 使用道具 举报
诱惑灵魂 发表于 2013-12-18 00:01
参数类型的先后顺序是否构成重载,这是重点,也是我想彻底弄明白的

参数的先后顺序就是参数对应的类型不同,是重载:
public void zhang(string name,int age)
{;}
public void zhang(int age,string name)
{;}
这就是对应的参数类型不同。
回复 使用道具 举报
红鹰(Jake) 发表于 2013-12-17 14:09
只有两种方法构成重载:1、方法参数的个数不同
2、方法参数对应的类型不同,记住一定是对应的类型不同。 ...

参数类型的先后顺序是否构成重载,这是重点,也是我想彻底弄明白的
回复 使用道具 举报
构成重载的条件:参数类型不同或者参数个数不同(不严谨的),与返回值无关。

下面两个例子 构成了方法的重载
static void SayHello(string name)
{
    Console.WriteLine("我是{0}",name);
}
static void SayHello(int age)
{
    Console.WriteLine("我的年龄{0}",age);
}

static void SayHello(string name)
{
    Console.WriteLine("我是{0}",name);
}
static void SayHello(string name,string nickname)
{
    Console.WriteLine("我是{0},昵称是{1}",name,nickname);
}

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
只有两种方法构成重载:1、方法参数的个数不同
2、方法参数对应的类型不同,记住一定是对应的类型不同。
回复 使用道具 举报
参数个数不同,类型不同,顺序不同,可构成重载
回复 使用道具 举报
public void fun()
public void fun(int i, string s)
public void fun(string s,int i)
public void fun(string s,int i,string str)

这些是一个方法的重载

评分

参与人数 1技术分 +1 收起 理由
陈行 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马