我想超载c#中的函数的返回类型。在此函数中,将以特定方式操纵字符串,具体取决于我假设的方法是由仅返回类型不同的方法的签名确定的。
。我是C#的新手,在Delphi中,我本来可以做到这一点(如果我记得没记错的话(,请对这里的最佳做法开放。
public Class1 GetAppSettings()
{
Class1 result = new Class1();
// Code does something
return result;
}
public Class2 GetAppSettings()
{
Class2 result = new Class2();
// Code does something
return result;
}
我假设调用过程将定义需要哪种类型的返回类型。
不幸的是,返回类型上的重载不支持。显然,返回类型不是(确实不能(考虑过载。编译器只能根据您想要的参数来讲述。
但是还有许多其他方法:
out参数。通常,仅当您需要将其他值从函数中删除(例如TryParse
(时,仅用于输出。但是我确实认为这应该是可以编译的,并且允许超载:
public void GetAppSettings(out Class1 output)
{
Class1 result = new Class1();
output = result;
}
另一种方法应该为扩展方法,但是这些方法可能太有限了。毕竟,您现在正在写这些课程,因此它们是不必要的。我只提到它们的完整性。
当然,可能是您永远不会首先(WICH是过载的核心重点(,在WICH情况下去。