2017-10-09 112 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()