对于以下情况,C# (或任何支持方法重载的面向对象语言)是否有某种约定?
假设我有一个方法foo:
public void Foo(int a){//does stuff}
但实际上我有3个方法foo:
public void Foo(int a){}
public void Foo(int a, double b){}
public void Foo(float c, int a, double b){}
是否有一个约定来说明重载方法中参数的顺序是否重要?注意第三种方法没有明显的逻辑级数(a,b,c)。
发布于 2013-02-12 20:32:09
是的有。看一看https://msdn.microsoft.com/en-us/library/ms229029(v=vs.110).aspx
在重载成员中的参数顺序上是一致的。在所有重载中,具有相同名称的参数应该出现在相同的位置。
发布于 2013-02-12 20:37:41
虽然不需要维护特定的顺序,但出于可读性的考虑,这样做通常是一个好主意。但是,参数的顺序对方法签名很重要。例如,
public void DoStuff(int a, bool b, string c)
{
}
public void DoStuff(bool b, string c, int a)
{
}
是有效的,并且编译得很好,即使参数的数量,甚至它们的名称都是相同的。
更新:我不推荐这样做。这可能会导致混乱。我只是说它在技术上是有效的。
https://stackoverflow.com/questions/14841223
复制相似问题