【发布时间】:2013-05-24 08:34:39
【问题描述】:
为什么我在以下代码中收到此错误?
void Main()
{
int? a = 1;
int? b = AddOne(1);
a.Dump();
}
static Nullable<int> AddOne(Nullable<int> nullable)
{
return ApplyFunction<int, int>(nullable, (int x) => x + 1);
}
static Nullable<T> ApplyFunction<T, TResult>(Nullable<T> nullable, Func<T, TResult> function)
{
if (nullable.HasValue)
{
T unwrapped = nullable.Value;
TResult result = function(unwrapped);
return new Nullable<TResult>(result);
}
else
{
return new Nullable<T>();
}
}
【问题讨论】:
-
问题是什么??
-
目前无法测试,但您调用
ApplyFunction<int, int>而不是ApplyFunction<int?, int>? -
为什么投反对票?对我来说似乎是一个合理的问题。