2011-02-15 7 views
8

मैंने कोड अनुबंधों का उपयोग करना शुरू कर दिया है और पाया है कि यह तुरंत किसी विधि के 'गले' को खोजना मुश्किल बनाता है।मैं अपने कोड को बिना छेड़छाड़ किए बिना .NET 4.0 में कोड अनुबंध का उपयोग कैसे करूं?

इस (बहुत सरल) उदाहरण लें:

public static void UserAddNew(string domain, string username, string displayName) 
{ 
    Contract.Assert(!string.IsNullOrWhiteSpace(domain)); 
    Contract.Assert(!string.IsNullOrWhiteSpace(username)); 
    Contract.Assert(!string.IsNullOrWhiteSpace(displayName)); 

    LinqDal.User.UserAddNew(domain, username, displayName); 
} 

अब मैं इतना है कि वे दूर छिपा हो सकता है, एक क्षेत्र में ठेके डाल करने के लिए परीक्षा रहा हूँ, लेकिन फिर मैं चिंतित हूं कि मैं कर रहा हूँ विधि पर नज़र रखने में सक्षम होने का एक अच्छा फायदा खोना और देखें कि यह क्या अपेक्षा करता है।

अपने अनुबंधों को साफ रखने के लिए आप क्या करते हैं? या मैं बस बहुत picky जा रहा हूँ?

+0

संभव डुप्लिकेट का: "मेरे कोड को बिना किसी कड़वाहट के मेरे आवेदन में नई विशेषताएं कैसे जोड़ूं?" –

+3

AFAICT, यह कोड अनुबंधों के लिए नया या विशिष्ट नहीं है - विधि सीसी से पहले भी पैरामीटर की जांच कर रही थी, है ना? मेरे पास कुछ सफेद जगहों के अलावा इसका कोई समाधान नहीं है ... – Mormegil

+0

मैं मॉर्मगिल से सहमत हूं। सीसी से पहले आपको लिखना था "अगर (हालत) नया तर्कवाद फेंक दें"। – koenmetsu

उत्तर

6

अनुबंध क्लास और अनुबंध क्लासफ़ोर विशेषताओं पर नज़र डालें। यह आपको विभिन्न असेंबली में कोड अनुबंधों के साथ कक्षाएं लिखने की अनुमति देता है। यह आपके कोड को अस्त-व्यस्त नहीं है, आप अनुबंध देव काम के लिए उपलब्ध करने की अनुमति देता है और यह भी मतलब है कि आप लाइव कोड के साथ अनुबंध को तैनात करने की जरूरत नहीं है:

Contract Class Attribute

Contract Class For Attribute

+1

सच है, लेकिन वह अपने उदाहरण में उपयोग की जाने वाली स्थिर विधि पर काम नहीं करेगा। – koenmetsu

+1

इसके अलावा: अनुबंधों को तैनात करना इस बात पर निर्भर करता है कि आप कोड अनुबंध संपत्ति फलक में किस सेटिंग का उपयोग करते हैं। सही सेटिंग्स के बिना अनुबंधों को तैनात नहीं करना आपको परेशानी देगा। – koenmetsu

+0

मुझे लगता है कि डेवलपर इस सुविधा का उपयोग करने के तरीके के बारे में दस्तावेज़ीकरण पढ़ेगा। :) –

संबंधित मुद्दे

 संबंधित मुद्दे