c#不支持根据返回值重载? 日,散100
编译器错误 CS0111
类“class”已经定义了一个具有相同参数类型的名为“member”的成员
类包含两个相同的成员声明。
下面的示例生成 CS0111:
// CS0111.cs
namespace x
{
abstract public class clx
{
public abstract void f();
}
public class cly : clx
{
public void f()
{
}
override public void f() // CS0111, duplicate declaration
{
}
public static int Main()
{
return 0;
}
}
}
------解决方案--------------------沙发接分先
------解决方案--------------------有什麼可以支持返回值重載的????????
還沒有聽過..........
------解决方案--------------------public void f()
{
}
override public void f() // CS0111, duplicate declaration
{
}
?
------解决方案--------------------,接分
------解决方案--------------------当然不可能根据返回值重载.
因为方法调用不一定必须使用返回值.
比如你声明int f()
代码中你可以直接调用f();而不是必须写成 int i=f();
如果你两个方法仅仅返回值不同,那么当你直接使用f();编译器根本不知道到底该调用哪个方法.
至少我不知道有哪个语言支持返回值不同重载.
------解决方案--------------------那种语言都不支持。
------解决方案--------------------^^
------解决方案--------------------前几天有个家伙把这当成.net的大bug发帖子了
------解决方案--------------------妈的,接分走人
------解决方案--------------------那种语言都不支持。
要是按 楼主 的意愿 ....
那么 编译的 东西 肯定是 混乱的...
------解决方案--------------------这个自然,不然程序员还怎么干!
------解决方案--------------------日也没用!这个得学习!
------解决方案--------------------Up
------解决方案--------------------只有一种语言支持返回值类型不同得重载
IL
------解决方案--------------------走!
------解决方案--------------------接分接分
------解决方案--------------------。。。
例:自己体会
public class A
{
public A(){}
public virtual void f()
{
System.Console.WriteLine( "A.f() ");
}
}