मैं वर्तमान में एक विश्वविद्यालय परियोजना के लिए सी # में एक छोटा एआई ढांचा (आनुवांशिक एल्गोरिदम/तंत्रिका नेटवर्क) विकसित कर रहा हूं।आप .NET में एल्गोरिदमिक कोड में कैसे जोर देते हैं?
मेरी पहली चिंता एक पुन: प्रयोज्य ढांचे का विकास कर रही है, इसलिए मैं सबकुछ सुंदर मॉड्यूलर बनाने के लिए डिजाइन कर रहा हूं। मुझे पता है कि मैं इस (प्रदर्शन) के लिए कीमत चुका रहा हूं, लेकिन मुझे लगता है कि इसके साथ हारने के लिए मुझे और अधिक लाभ होता है (कोड को दो बार खोने की अपेक्षा धीमी गति से दो बार खोना मुश्किल है, बाद में असंभव खोजने की कोशिश कर रहा है कोडों के एक मोनोलिथिक ब्लॉक में पेश करने के लिए कठिन हैं जो नई चीजों को जोड़ने की कोशिश कर रहे बग और कई समय खोना)।
मैं मूल रूप से अपने कोड, दावे के विभिन्न हिस्सों पर बहुत से चेक देखना चाहता हूं। जांचें कि क्या चल रहा है XI वास्तव में सही स्थिति में है, आदि। विकास के दौरान उन तरह के दावे उपयोगी होते हैं, लेकिन मैं उन्हें रिलीज कोड से दूर रहना चाहता हूं (यानी, जब मैं फैसला करता हूं कि मैं छोड़ना चाहता हूं यह मेरे अंतिम शोध परिणामों को पाने के लिए रात के लिए काम कर रहा है)।
- तरीकों में से System.Diagonists.Assert परिवार:
मैं इस को पूरा करने के कई तरीके देख सकते हैं।
- कोड संविदा
- होने अगर (x) तो InvalidStateException() #if डीबग से घिरा हुआ फेंक/
आप इसे कैसे करना होगा और क्यों #endif?
मैं यूनिट-टेस्ट (मैं उनका उपयोग कर रहा हूं) के बारे में भी जानता हूं, लेकिन मैं भी कोड पर कुछ प्रकार के दावे करना चाहूंगा।
कोड संविदाएं समान तरीके से काम नहीं करती हैं? मुझे यह विचार था कि आप उन्हें रिलीज मोड, या ऐसा कुछ में पूरी तरह से बंद कर सकते हैं। –
शायद। ईमानदारी से मैं इससे परिचित नहीं हूँ। मेरे उत्तर में तकनीक वह है जिसका मैं उपयोग करता हूं, इसलिए मैंने सोचा कि मैं इसे साझा करूंगा। मैं यह नहीं कह सकता कि यह कोड अनुबंध से बेहतर या बदतर है। – cdhowie
मैं cdhowie कहता हूं के साथ जाना होगा। कोड अनुबंध एक बहुत अधिक प्रदान करता है लेकिन शायद आपके मामले में आपको जो चाहिए वह नहीं। तो मुझे लगता है कि सही उपकरण इनलाइन # if, # else या Debug.Asset() को आपके कोड इनलाइन को अव्यवस्थित करने के बजाय सशर्त विशेषता के साथ सजाए गए तरीकों का उपयोग कर रहा है। –