是否可以更改函数的返回类型

soa*_*dos 0 c# return-type

是否有可能有一个函数(int n,bool wantall)并返回一个基于bool的不同类型?让我想到这一点的例子是产生斐波那契数字.如果wantall = true,则返回前n个数字的数组(或列表),否则返回第n个数字.有没有办法做到这一点?

jas*_*son 10

不,您无法更改返回类型.

对于您的示例,理想情况下,您应该针对所讨论的内容进行不同的重载

GetFirstFibonacciNumbers(int count)
GetSingleFibonacciNumber(int nth)
Run Code Online (Sandbox Code Playgroud)

传递bool给这个只是丑陋.

但如果你坚持一个方法

IEnumerable<int> GetFibonacciNumbers(int n, bool wantall) {
    if(!wantall) {
        return new[] { GetSingleFibonacciNumber(n); }
    }
    else {
        return GetFirstFibonacciNumbers(n);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,请不要这样做.