खोज…


तर्क की जाँच करने का आश्वासन हमेशा सही होना चाहिए

कथनों का उपयोग इनपुट मापदंडों के परीक्षण के लिए नहीं किया जाता है, बल्कि यह सत्यापित करने के लिए किया जाता है कि प्रोग्राम का प्रवाह सही है - यानी, आप एक निश्चित समय पर अपने कोड के बारे में कुछ धारणा बना सकते हैं। दूसरे शब्दों में: Debug.Assert साथ किया गया एक परीक्षण हमेशा मान लेना चाहिए कि परीक्षण किया गया मान true

डीबग। डीबग बिल्ड में केवल निष्पादित करता है; इसे RELEASE बिल्ड में से फ़िल्टर किया गया है। इसे यूनिट टेस्टिंग के अलावा डिबगिंग टूल माना जाना चाहिए न कि कोड कॉन्ट्रैक्ट या इनपुट वेलिडेशन मेथड के रिप्लेसमेंट के रूप में।

उदाहरण के लिए, यह एक अच्छा दावा है:

var systemData = RetrieveSystemConfiguration();
Debug.Assert(systemData != null);

यहाँ मुखर एक अच्छा विकल्प है क्योंकि हम यह मान सकते हैं कि RetrieveSystemConfiguration () एक वैध मान लौटाएगा और कभी भी अशक्त नहीं लौटेगा।

यहाँ एक और अच्छा उदाहरण है:

UserData user = RetrieveUserData();
Debug.Assert(user != null);
Debug.Assert(user.Age > 0);
int year = DateTime.Today.Year - user.Age;

पहले, हम मान सकते हैं कि RetrieveUserData () एक वैध मान लौटाएगा। फिर, आयु संपत्ति का उपयोग करने से पहले, हम इस धारणा (जो हमेशा सच होनी चाहिए) को सत्यापित करते हैं कि उपयोगकर्ता की आयु सख्ती से सकारात्मक है।

यह मुखर का एक बुरा उदाहरण है:

string input = Console.ReadLine();
int age = Convert.ToInt32(input);
Debug.Assert(age > 16);
Console.WriteLine("Great, you are over 16");

मुखर इनपुट सत्यापन के लिए नहीं है क्योंकि यह मान लेना गलत है कि यह दावा हमेशा सच होगा। आपको उसके लिए इनपुट सत्यापन विधियों का उपयोग करना होगा। उपरोक्त मामले में, आपको यह भी सत्यापित करना चाहिए कि इनपुट मूल्य पहले स्थान पर एक संख्या है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow