2010-03-15 38 views
6

Tôi cần chuyển vị ngữ mà tôi có thể gọi bất cứ khi nào tôi muốn (giống như một đại biểu). Tôi cố gắng để làm một cái gì đó như thế này (tôi nghĩ Predicate đại biểu sẽ đáp ứng nhu cầu của tôi):Chuyển một điều kiện bool đến phương thức mà tôi có thể gọi khi tôi cần

MyMethod(Predicate,string> pred); 

gọi như: MyMethod(s => s.Length > 5);

Tôi muốn viết inline trạng NHƯNG gọi nó khi tôi muốn, giống như một đại biểu. Làm thế nào tôi có thể làm điều này>?

Cảm ơn

+0

Bạn chỉ cần làm điều này! – Grzenio

Trả lời

2

Giống như sau

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

Sau đó

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

Bạn sẽ làm điều đó một cách chính xác như bạn đã viết:

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

    if(method(theString)) 
    { 
     //... 
    } 
} 
Các vấn đề liên quan