2010-03-15 11 views
6

की आवश्यकता होती है, तो मैं जिस विधि को बुला सकता हूं उसे एक बूल स्थिति पास कर रहा हूं, मुझे एक ऐसी भविष्यवाणी में गुजरना होगा जिसे मैं चाहूं जब भी मैं चाहूं (केवल एक प्रतिनिधि की तरह)। मैं इस तरह कुछ करने के लिए कोशिश कर रहा हूँ (मैंने सोचा था कि विधेय प्रतिनिधि मेरी जरूरतों को पूरा करेगा):जब मुझे

MyMethod(Predicate,string> pred); 

कहा जाता है की तरह: MyMethod(s => s.Length > 5);

मैं शर्त इनलाइन लिखने लेकिन यह आह्वान करने के लिए चाहते हैं जब मैं चाहता हूँ, जैसे एक प्रतिनिधि मैं यह कैसे कर सकता हूं>?

धन्यवाद

+0

तुम बस ऐसा किया! – Grzenio

उत्तर

2

निम्नलिखित

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

की तरह फिर

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

आप इसे करना होगा कि वास्तव में आप की तरह लिखा है:

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

    if(method(theString)) 
    { 
     //... 
    } 
} 
संबंधित मुद्दे