C# 如何从“新建函数”中获取结果<;T>;() { ... }?`
为什么这些打印不同的东西 假设我有这样一门课:C# 如何从“新建函数”中获取结果<;T>;() { ... }?`,c#,.net,C#,.net,为什么这些打印不同的东西 假设我有这样一门课: public class ExampleOfFunc { public int Addition(Func<int> additionImplementor) { if (additionImplementor != null) return additionImplementor(); return default(int); } } 但这会打印打印Sy
public class ExampleOfFunc
{
public int Addition(Func<int> additionImplementor)
{
if (additionImplementor != null)
return additionImplementor();
return default(int);
}
}
但这会打印打印System.Func'1[System.Int32]
:
Console.WriteLine("{0}", new Func<int>(
() =>
{
return 100 + 100;
})); // Prints System.Func`1[System.Int32]
Console.WriteLine({0}),新函数(
() =>
{
返回100+100;
})); // 打印System.Func`1[System.Int32]
假设有50个类和函数,例如ExampleOfFunc.Addition
。编译器如何知道您想要的是哪个函数?您必须明确地告诉它。在第二个示例中,您只将匿名函数作为参数提供给Console.WriteLine。您实际上并没有调用该函数。这一行
return additionImplementor();
调用该函数并返回其结果,然后将其传递给控制台。WriteLine()
而这条线
Console.WriteLine("{0}", new Func<int>(
() =>
{
return 100 + 100;
}
));
这正是我们所缺少的。谢谢
Console.WriteLine("{0}", new Func<int>(
() =>
{
return 100 + 100;
}
));
Console.WriteLine("{0}", new Func<int>(
() =>
{
return 100 + 100;
}
)());