2017-10-09 78 views
2

我要输出到显示为“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); 
     } 
    } 
} 
+0

十是一个功能,那就是为什么你不见10 – Sasha

回答

3

要封装的方法当您将其声明为Func时,当您致电ten时,它尚未调用。

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

Console.WriteLine(ten.Invoke());

或者使用委托实例

Console.WriteLine(ten());

https://dotnetfiddle.net/d2mPPz

4

尝试

Console.WriteLine(ten()): 

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

2

十是Func键调用它,所以如果你想看到“10”,你需要调用它像ten.Invoke()