/ / सी # बूलियन ऑपरेटर - सामान्य बनाम शॉर्ट-सर्किट - सी #

सी # बुलियन ऑपरेटर - सामान्य बनाम शॉर्ट-सर्किट - सी #

BOOLEAN ऑपरेटर के बारे में प्रश्न "|" और "||" इन दोनों ऑपरेटरों के बीच एकमात्र अंतर जो मैं पा सकता हूं; "" का उपयोग करते समय यदि बाईं ओर सत्य है तो अभिव्यक्ति के दाईं ओर मूल्यांकन नहीं किया जाएगा।

किसी व्यक्ति की पसंद के बाहर क्यों "" ओवर "||" बूलियन परीक्षण के लिए

if(true | false)
{
do something
}

vs
if (true || false)
{
do something
}

उत्तर:

उत्तर № 1 के लिए 17

यदि ऑपरेशन के दुष्प्रभाव हैं तो यह मुख्य रूप से एक मुद्दा है:

निम्नलिखित को धयान मे रखते हुए:

using(IEnumerator iterator1 = args.GetEnumerator())
using (IEnumerator iterator2 = args.GetEnumerator())
{
while (iterator1.MoveNext() | iterator2.MoveNext())
{
//do stuff
}
}

क्यों कि MoveNext ऑपरेशन के कारण साइड इफेक्ट्स हो सकते हैं दोनों के पक्ष | इस बात पर ध्यान दिए बिना कि क्या पहला सच है।


जवाब के लिए 4 № 2

क्यों एक का उपयोग करेगा "|" ओवर "||" बूलियन परीक्षण के लिए

यदि (किसी कारण से) दाहिनी ओर के साइड-इफेक्ट्स होते हैं जो आपको होने चाहिए।

यह आम तौर पर अच्छा अभ्यास नहीं है।


जवाब के लिए 3 № 3

किसी व्यक्ति की पसंद के बाहर क्यों "" ओवर "||" बूलियन परीक्षण के लिए

ठीक है क्योंकि आप पराक्रम चाहते हैं कि दोनों पक्षों का मूल्यांकन किया जाए। इसके साइड-इफेक्ट्स हो सकते हैं जो आपको किसी भी तरह से होने चाहिए।

यह दुर्लभ है, लेकिन यह संभव है।