2010-03-15 3 views
6

J'ai besoin de transmettre un prédicat que je peux invoquer quand je veux (comme un délégué). Je suis en train de faire quelque chose comme ça (je pensais que délégué prédicats répondrait à mes besoins):Passer une condition booléenne à la méthode que je peux invoquer quand j'ai besoin

MyMethod(Predicate,string> pred); 

Appelée comme: MyMethod(s => s.Length > 5);

Je veux écrire la ligne de condition, mais l'appeler quand je veux, comme un délégué. Comment pourrais-je faire cela?

Merci

+0

Vous venez de faire ça! – Grzenio

Répondre

2

Comme les éléments suivants

bool MyMethod(Predicate<string> pred) { 
    ... 
    if (pred("foo")) { ... 
    } 
} 

Puis

MyMethod(s => s.Length > 5); 
3

vous le feriez exactement comme vous avez écrit:

void MyMethod(Func<string, bool> method) // Could be Predicate<string> instead 
{ 
    // Do something 
    // ... 
    // Later, if you choose to invoke your method: 

    if(method(theString)) 
    { 
     //... 
    } 
} 
Questions connexes