2012-11-21 13 views
5

सी # कैसे मैं अगर किसी और बयान एक छोटी पद्धति का उपयोग करके निम्नलिखित व्यक्त कर सकते हैं में (के साथ?):सी # यदि किसी और शॉर्टकट

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

      } 
      else if (condition2 == false) 
      { 

       dothismethod(value); 
      } 

मेरे कोड वास्तव में इन बयानों के साथ गंदा लग रहा है। क्या कोई मुझे एक अच्छा संसाधन के लिए निर्देशित कर सकता है अगर फिर शॉर्ट कट वाक्यविन्यास?

उत्तर

18

ऐसा लगता है कि आप

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

लिखने के लिए सशर्त ऑपरेटर ? केवल मूल्य असाइनमेंट के लिए काम करता है की कोशिश कर रहे लग रहा है। यदि/बाकी

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

? एक "शॉर्टकट" नहीं है: लेकिन आप निश्चित रूप से दोनों अगर के फोल्ड कर सकते हैं एक में परिणाम के बाद से दोनों के लिए एक ही है:

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

या यहां तक ​​कि अधिक संक्षिप्त रूप में। यह एक त्रिगुट ऑपरेटर कहा जाता है, और जब आप ऐसा तरह एक शर्त के आधार पर कुछ चर को कोई मान निर्दिष्ट करने के लिए, चाहते हैं कि उसे किया जाता है:

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

आपका ऐसा लिख ​​सकते हैं :

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

लेकिन व्यक्तिगत रूप से, मैं अपनी पहली अभिव्यक्ति एक और चर के रूप में है, तो आपके अगर बयान हो जाता है परिभाषित करेगा साफ:

bool meaningfulConditionName = (condition1 == true) && count > 6; 
if (meaningfulConditionName || !condition2) 
{ 
    dothismethod(value); 
} 
संबंधित मुद्दे