2017-10-09 6 views
2

Je veux sortie à afficher comme « 10 » mais au-dessous des sorties de code « System.Func'1[System.Int32] »Valeur de retour n'apparaît pas

ne fonctionne pas de retour « 10 »? Pourquoi cela n'est-il pas affiché?

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

dix est une fonction, c'est la raison pour laquelle vous n'avez pas voir 10 – Sasha

Répondre

3

Vous êtes en encapsulant la méthode Lorsque vous l'avez déclaré Func, lorsque vous appelez ten, il n'est pas encore appelé.

Pour l'exécuter, vous devez utiliser .Invoke()

Console.WriteLine(ten.Invoke());

Ou utilisez instance de délégué

Console.WriteLine(ten());

https://dotnetfiddle.net/d2mPPz

4

Essayez

Console.WriteLine(ten()): 

Vous imprimez la représentation de chaîne de l'objet Func. Mais vous devez invoquer à l'aide ()

2

Ten est un Func, donc si vous voulez voir « 10 », vous avez besoin d'invoquer comme ten.Invoke()