2011-09-12 3 views
0

Pardonnez-moi si ma question est techniquement formulée mal mais j'ai besoin essentiellement d'une méthode anonyme ou un délégué Func pour encapsuler les fonctionnalités suivantes:Besoin d'aide pour écrire une méthode anonyme?

   if (Cache.CurrentCustomer == null) 
       { 
        return null; 
       } 
       else 
       { 
        return Cache.CurrentCustomer.PersonID; // (Guid type) 
       } 

qui précède l'instruction if renvoie une valeur qui va être affecté contre une entité Order ayant un champ de propriété PersonID exposé qui accepte un type de guidage nullable.

Si un délégué Func est possible peut alors instancier à la volée comme:

orderToInsert.PersonID = new Func() => { ... } 

Je généralement expédier mon si le scénario de déclaration sur dans une méthode aide de soutien c'est une bonne occasion d'apprendre quelque chose que je suis essayer de choisir pour les âges! TIA !!!

+0

'() => (? Guid) Cache.CurrentCustomer.PersonID' – Steven

Répondre

4

Ici, il est sous forme de lambda:

Func<Guid?> lambda =() => Cache.CurrentCustomer == null 
          ? (Guid?)null 
          : Cache.CurrentCustomer.PersonID; 

Vous pouvez ensuite utiliser comme dans

orderToInsert.PersonID = lambda(); 

Mise à jour: Si vous essayez seulement de voir ce qui est possible ici, alors vous pouvez également faire ceci:

orderToInsert.PersonID = (() => Cache.CurrentCustomer == null 
          ? (Guid?)null 
          : Cache.CurrentCustomer.PersonID)(); 

qui est vraiment juste un rond-point façon de faire le classique:

orderToInsert.PersonID = Cache.CurrentCustomer == null 
          ? (Guid?)null 
          : Cache.CurrentCustomer.PersonID; 
+0

TY pour la réponse rapide, mais je peux l'utiliser comme décrit dans la deuxième partie de ma question ?? ? ----------- Fondamentalement, je veux juste apprendre que c'est tout ce que je voudrais normalement utiliser une méthode de plan. Je pense que je sais comment l'utiliser en ligne, laissez-moi essayer cela. – IbrarMumtaz

+0

@IbrarMumtaz: Je ne comprends pas ce que vous essayez de faire ici. Qu'est-ce que tu veux faire différemment de ce que nous avons ici? – Jon

+0

Fondamentalement, je veux utiliser l'expression que vous avez écrit mais déclarer et l'utiliser en ligne. Je pense que c'est une technique utile à apprendre maintenant et peut-être l'utiliser dans d'autres domaines de mon projet. – IbrarMumtaz

Questions connexes