स्थिति: सी में हालत की जांच ++ या कई मानदंडों के साथ सी #:सी ++ और सी # में पूर्व निर्धारित या यादृच्छिक अनुक्रम में कई स्थितियों की जांच की जाती है?
if (condition1 && condition2 && condition3)
{
// Do something
}
मैं हमेशा अनुक्रम जिसमें इन चेकों प्रदर्शन कर रहे हैं गारंटी नहीं है माना है। तो यह जरूरी नहीं है कि पहली शर्त 1 फिर condition2 और केवल तब स्थिति 3। मैंने इसे सी ++ के साथ अपने समय में सीखा। मुझे लगता है कि मुझे बताया गया था या इसे कहीं पढ़ा है।
ऊपर तक जानता हूँ कि मैं हमेशा निम्न स्थिति में संभव अशक्त संकेत के लिए खाते की सुरक्षित कोड लिखा है:
if ((object != null) && (object.SomeFunc() != value))
{
// A bad way of checking (or so I thought)
}
तो मैं लिख रहा था:
if (object != null)
{
if (object.SomeFunc() != value)
{
// A much better and safer way
}
}
क्योंकि मुझे यकीन है कि नहीं था नॉन-नल चेक पहले चलाएगा और केवल तभी इंस्टेंस विधि दूसरी जांच करने के लिए बुलाया जाएगा।
अब हमारे सबसे बड़े समुदाय दिमाग मुझे अनुक्रम बता रहे हैं जिसमें इन चेकों को किया जाता है, बाएं से दाएं क्रम में चलाने की गारंटी है।
मैं बहुत हैरान हूं। क्या यह वास्तव में सी ++ और सी # भाषाओं दोनों के लिए है?
क्या किसी और ने अब संस्करण को सुना है जो मैंने पहले सुना है?
सी # में Subexpressions का मूल्यांकन बाएं से दाएं, हमेशा, अवधि का मूल्यांकन किया जाता है। सी/सी ++ में Subexpressions अनुक्रम-बिंदु क्रम में मूल्यांकन किया जाता है। किसी भी क्रम में एक ही अनुक्रम बिंदु में दो अभिव्यक्तियों का मूल्यांकन किया जा सकता है। यदि आपको औपचारिक परिभाषा की आवश्यकता है तो "अनुक्रम बिंदु" पर एक वेब खोज करें। –