Return 值未显示

Return value is not shown

我希望输出显示为“10”,但下面的代码输出“System.Func'1[System.Int32]

return“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);
        }
    }
}

尝试

Console.WriteLine(ten()):

您正在打印 Func 对象的字符串表示形式。 但是你必须使用 ()

调用它

Ten 是一个 Func,所以如果你想看到“10”,你需要像 ten.Invoke()

那样调用它

声明为Func时,您正在封装该方法,当您调用ten时,它尚未被调用。

为了执行它,你必须使用.Invoke()

Console.WriteLine(ten.Invoke());

或使用委托实例

Console.WriteLine(ten());

https://dotnetfiddle.net/d2mPPz