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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

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

7 个回复

倒序浏览
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

查看全部评分

回复 使用道具 举报
参数个数不同,类型不同,顺序不同,可构成重载
回复 使用道具 举报
只有两种方法构成重载: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

查看全部评分

回复 使用道具 举报
红鹰(Jake) 发表于 2013-12-17 14:09
只有两种方法构成重载:1、方法参数的个数不同
2、方法参数对应的类型不同,记住一定是对应的类型不同。 ...

参数类型的先后顺序是否构成重载,这是重点,也是我想彻底弄明白的
回复 使用道具 举报
诱惑灵魂 发表于 2013-12-18 00:01
参数类型的先后顺序是否构成重载,这是重点,也是我想彻底弄明白的

参数的先后顺序就是参数对应的类型不同,是重载:
public void zhang(string name,int age)
{;}
public void zhang(int age,string name)
{;}
这就是对应的参数类型不同。
回复 使用道具 举报
V_John 中级黑马 2013-12-19 18:01:39
8#
如果问题得到解决,请修改为已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马