黑马程序员技术交流社区

标题: C#中方法的重载,满足的具体条件? [打印本页]

作者: 诱惑灵魂    时间: 2013-12-16 23:47
标题: C#中方法的重载,满足的具体条件?
本帖最后由 诱惑灵魂 于 2013-12-19 20:55 编辑

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

作者: haxyek    时间: 2013-12-17 00:13
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)

这些是一个方法的重载

作者: 师弟    时间: 2013-12-17 13:34
参数个数不同,类型不同,顺序不同,可构成重载
作者: 红鹰(Jake)    时间: 2013-12-17 14:09
只有两种方法构成重载:1、方法参数的个数不同
2、方法参数对应的类型不同,记住一定是对应的类型不同。
作者: 雨中恋人    时间: 2013-12-17 16:38
构成重载的条件:参数类型不同或者参数个数不同(不严谨的),与返回值无关。

下面两个例子 构成了方法的重载
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);
}


作者: 诱惑灵魂    时间: 2013-12-18 00:01
红鹰(Jake) 发表于 2013-12-17 14:09
只有两种方法构成重载:1、方法参数的个数不同
2、方法参数对应的类型不同,记住一定是对应的类型不同。 ...

参数类型的先后顺序是否构成重载,这是重点,也是我想彻底弄明白的
作者: 红鹰(Jake)    时间: 2013-12-18 12:44
诱惑灵魂 发表于 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
如果问题得到解决,请修改为已解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2