2012-11-21 20 views
5

Trong C# làm thế nào tôi có thể bày tỏ những điều sau nếu else sử dụng một phương pháp ngắn hơn (với ai?):C# nếu khác shortcut

if (condition1 == true && count > 6) 
      { 
       dothismethod(value); 

      } 
      else if (condition2 == false) 
      { 

       dothismethod(value); 
      } 

Mã của tôi trông thật sự lộn xộn với các báo cáo. Ai đó có thể hướng tôi đến một nguồn tài nguyên tốt nếu cú ​​pháp cắt ngắn khác không?

Trả lời

18

Có vẻ như bạn đang cố gắng để viết

if ((condition1 && count > 6) || !condition2) 
    SomeMethod(); 
0

Các nhà điều hành có điều kiện ? chỉ hoạt động chuyển nhượng giá trị. Nhưng bạn chắc chắn có thể gấp cả hai nếu nhân vào một từ kết quả là như nhau cho cả hai:

if ((condition1 == true && count > 6) || condition2 == false) 
      { 
       dothismethod(value); 
      } 

Hoặc thậm chí ngắn gọn hơn như:

if ((condition1 && count > 6) || !condition2) dothismethod(value); 
9

? không phải là một "shortcut" if/else. Nó được gọi là một ternary nhà điều hành, và nó được sử dụng khi bạn muốn gán một giá trị cho một số biến dựa trên một điều kiện, như vậy:

string message = hasError ? "There's an error!" : "Everything seems fine...";

MSDN: http://msdn.microsoft.com/en-us/library/ty67wk28%28v=vs.100%29.aspx

4

bạn có thể viết nó như :

if ((condition1 == true && count > 6) || condition2 == false) 
{ 
    dothismethod(value); 
} 

Nhưng cá nhân tôi, tôi sẽ xác định biểu hiện đầu tiên của bạn như là một biến khác, vì vậy nếu tuyên bố trở nên rõ ràng hơn:

bool meaningfulConditionName = (condition1 == true) && count > 6; 
if (meaningfulConditionName || !condition2) 
{ 
    dothismethod(value); 
}