方法超载返回类型



我想超载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情况下去。

最新更新