C#返回类型不同是否为方法重载?
C#返回类型不同是否为方法重载?publicstringb(inta,stringname){returna;}publicvoidb(stringname,inta){...
C#返回类型不同是否为方法重载?
public string b(int a, string name) { return a; }
public void b(string name, int a) { } 展开
public string b(int a, string name) { return a; }
public void b(string name, int a) { } 展开
展开全部
重载的概念是:
方法名称相同,参数个数、次序、类型不同
因此重载对返回值没有要求,可以相同,也可以不同
但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载
如:
public int A(int i);
public double A(int i);
这2个方法不能构成重载,会有编译错误。
而:
public int A(int i):
public double A(double i);
这2个方法可以形成重载
因此你的是
方法名称相同,参数个数、次序、类型不同
因此重载对返回值没有要求,可以相同,也可以不同
但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载
如:
public int A(int i);
public double A(int i);
这2个方法不能构成重载,会有编译错误。
而:
public int A(int i):
public double A(double i);
这2个方法可以形成重载
因此你的是
追问
就是说参数 参数顺序 参数个数 相同不为重载,返回类型相同或者不相同,但参数不同,或顺序不同,就为重载!
展开全部
参数不同为重载,返回值不算。
你可以尝试一下
public string a(string s)
public void a(string a)
这样编译不过去。
因为这样无法识别!
你可以尝试一下
public string a(string s)
public void a(string a)
这样编译不过去。
因为这样无法识别!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-08-17 · 知道合伙人软件行家
关注
展开全部
返回类型不同 不是 方法重载。
方法重载必须满足以下两点之一:
(1)参数个数不同。
(2)参数类型不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回类型不同,不能称之为“重载”,但是如你问题举的例子,参数个数相同,但是顺序不同,这样是可以是构成重载的
追问
如果一个没有参数,一个有参数呢? 是否构成重载?
public string b(int a, string name) { return a; }
public void b() { }
会否会报错,不采用0个参数什么的?
追答
是重载,不会报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
像楼主说的这样,其实没必要弄成void和其他类型一样的方法,因为,就算有返回参数,在调用的时候可以不接受,或者不使用。如果是这个的话,可以这样
public object b(int a, string name,string type) {
if ("List".Equals(type))
reutrn new List<object>();
else
renturn new DataTable();
}
public object b(int a, string name,string type) {
if ("List".Equals(type))
reutrn new List<object>();
else
renturn new DataTable();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询