सी # .NET में एक अगर बयान"अगर" कथन - वस्तुओं की सत्यापन का आदेश?
if (Company !=null && Company.ID > 0)
{
}
करता है सी # काम के आदेश के बारे में सरल सवाल सही करने के लिए छोड़ दिया है, और इसलिए Company.ID पर जांच वैध बनाने से?
धन्यवाद।
सी # .NET में एक अगर बयान"अगर" कथन - वस्तुओं की सत्यापन का आदेश?
if (Company !=null && Company.ID > 0)
{
}
करता है सी # काम के आदेश के बारे में सरल सवाल सही करने के लिए छोड़ दिया है, और इसलिए Company.ID पर जांच वैध बनाने से?
धन्यवाद।
अनिवार्य रूप से, हाँ।
if
बयान कोष्ठकों के भीतर एक बूलियन ऑपरेटर अगले स्टेटमेंट का मूल्यांकन निर्धारित करने के लिए उम्मीद है।
अगर पहले बूलियन जांच Company !=null
गलत है, यह और नहीं झूठे लौटने बयान होगा, &&
ऑपरेटर का उपयोग करना, अमल अन्य (Company.ID > 0
)।
इसके अलावा (संदर्भ के लिए) ||
ऑपरेटर का उपयोग पहले कथन के बाद सच हो जाएगा यदि यह सत्य है और दूसरे का मूल्यांकन नहीं करता है।
लघु जवाब: हाँ
मामूली लंबा उत्तर: की है कि फार्म और शॉर्ट सर्किट मूल्यांकन का उपयोग करेगा तो अगर कंपनी रिक्त है तो यह दूसरे की जांच करते हैं नहीं होंगे।
MSDN:
सशर्त-AND ऑपरेटर (& &) एक तार्किक-और की अपनी bool ऑपरेंड करता है, लेकिन यदि आवश्यक हो तो केवल अपने दूसरे संकार्य मूल्यांकन करता है।
इसके अलावा, यदि आप किसी कारण से चाहते हैं दोनों भाव का मूल्यांकन किया जाना है, और shortcutted नहीं, एक डबल की एक एकल "&" के बजाय का उपयोग करें।
http://msdn.microsoft.com/en-us/library/2a723cdk(VS.80).aspx
& & ऑपरेटर एक तथाकथित शॉर्ट सर्किट ऑपरेटर है। यह बाएं से दाएं बयानों का परीक्षण करता है और परीक्षणों में से एक विफल होने पर परीक्षण बंद हो जाता है। आप हर परीक्षण चलाने के लिए चाहते हैं, & ऑपरेटर का उपयोग करें।
अधिक जानकारी here
हाँ, यह करता है पाया जा सकता है। आप समारोह के लिए शर्तों प्रतिस्थापन यह साबित कर सकते हैं कॉल:
if (myfunc() && myfunc2())
{
console.writeline("Success");
}
...
bool myfunc()
{
console.writeline("func1");
return false;
}
bool myfunc2()
{
console.writeline("func2");
return true;
}
चाहिए उत्पादन:
func1
Success
संदर्भ: http://msdn.microsoft.com/en-us/library/2a723cdk.aspx – cofiem
यह '&&' की वजह से शॉर्ट-सर्किट होगा, 'if' के साथ कुछ लेना देना नहीं है। मुझे लगता है कि मैं इसे पूर्ण होने के लिए टिप्पणी करूंगा, अन्यथा, +1। – Marc
@Marc - अधिक सटीक विवरण, धन्यवाद के साथ अद्यतन। – cjk