我希望输出显示为“ 10”,但下面的代码输出为“ System.Func'1[System.Int32]
”
函数不返回“ 10”吗?为什么不显示?
using System;
namespace ConsoleApplication
{
class Program
{
public int Get10()
{
return 10;
}
static void Main(string[] args)
{
var ten=new Func<int>(new Program().Get10);
Console.WriteLine(ten);
}
}
}
最佳答案
当您将方法声明为Func
时,将封装该方法,当调用ten
时,该方法尚未被调用。
为了执行它,您必须使用.Invoke()
Console.WriteLine(ten.Invoke());
或使用委托实例Console.WriteLine(ten());
https://dotnetfiddle.net/d2mPPz