是否有可能有一个函数(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)
但是,请不要这样做.