为什么C#不支持基于返回类型的重载

时间:2015-08-04 18:15:09

标签: c#-4.0

在C#中,为什么除了返回类型之外我们还有两个具有相同签名的函数:

(1)int函数(int a,int b)     {       ---} (2)字符串函数(int a,int b)     {       ---}

为什么C#不支持基于返回类型的重载?

2 个答案:

答案 0 :(得分:1)

object result = Function(a, b);

你打电话给哪一个?

答案 1 :(得分:1)

因为在调用它时无法指定返回类型。

// int or string?
Function(a, b);

我也很好奇你为什么要这样做,命名相同但返回两个不同的东西可能是一个坏主意。这段代码更具可读性,意图更清晰:

string x = FunctionToString(a, b);
int y = FunctionToInt(a, b);