我有以下代码,但它无法在 Visual Studio 17.4 预览版 2.1 和 .NET 7 RC1 SDK 中编译:
using System.Numerics;
int averageInt = Average<int, int>(1, 5, 10);
Console.WriteLine(averageInt);
double averageDouble = Average<int, double>(1, 5, 10);
Console.WriteLine(averageDouble);
TResult Average<TInput, TResult>(params TInput[] numbers)
where TInput : INumber<TInput>
where TResult : INumber<TResult> => numbers.Sum() / TResult.CreateChecked(numbers.Length);
Run Code Online (Sandbox Code Playgroud)
我得到的编译器错误是:
Error CS1929 'TInput[]' does not contain a definition for 'Sum' and the best extension method overload 'Queryable.Sum(IQueryable<decimal>)' requires a receiver of type 'IQueryable<decimal>'
我尝试了以下方法作为替代方案,但它也无法编译:
using System.Numerics;
int averageInt = Average<int, int>(1, 5, …Run Code Online (Sandbox Code Playgroud)