2013-10-02 7 views
7

में रिडंडेंट स्पष्ट संपत्ति का नाम मैं SimpleMembership प्रदाता का उपयोग कर रहा हूं और पंजीकरण पर सहेजे जाने के लिए अतिरिक्त फ़ील्ड जोड़ रहा हूं।सी # चेतावनी

पंजीकरण पर अतिरिक्त फ़ील्ड को सहेजने के लिए मैं हर जगह प्रयुक्त विधि का उपयोग करता हूं उदा। Link

मैं निम्नलिखित SimpleMembership प्रदाता मेरी HttpPost ActionResult में कहा जाता है विधि का उपयोग रजिस्टर विधि

WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password, 
    new { FirstName = registerModel.FirstName, LastName = registerModel.LastName, CompanyName = registerModel.CompanyName}); 

अतिरिक्त फ़ील्ड प्रकार वस्तु के मूल्य विधि पैरामीटर द्वारा एक से जोड़े जाते हैं। इसके लिए विवरण "एक शब्दकोश है जिसमें अतिरिक्त उपयोगकर्ता विशेषताएँ हैं"

तो यह काम करता है।

मेरा सवाल है कि मेरे पास Jetbrains Resharper 8 स्थापित है और संपत्ति के नामों के लिए मुझे "अनावश्यक स्पष्ट संपत्ति नाम" चेतावनियां मिलती हैं। चेतावनी को निकालने के लिए यह मैं बदल मेरी कोड तरह दिखेगा:

WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password, 
    new { registerModel.FirstName, registerModel.LastName, registerModel.CompanyName}); 

मेरा प्रश्न इस अनाम वस्तु पैरामीटर जहां मैं अब संपत्ति नामों को निकालने के तो मैं Resharper चेतावनी अब और नहीं मिलता है के लिए 1) कर रहे हैं, यह कैसे पता चलता है कि संपत्ति नामों का उपयोग डीबी संपत्ति वर्ग से मेल खाने के लिए किया जाएगा क्योंकि वे मूल्य से गुजर चुके हैं?

2) संपत्ति के नाम होने या नहीं होने का सर्वोत्तम अभ्यास क्या है। उन्हें होने में नहीं बहुत पढ़ने योग्य नहीं है और कोड नमूने में वे निर्दिष्ट कर रहे हैं तो मैं उन में होने कल्पना कर सकते हैं बल्कि यह

उत्तर

10

मेरा प्रश्न को हटाने 1) इस अनाम वस्तु पैरामीटर के लिए जहां अब मैं हटाने कर रहे हैं की तुलना में पठनीयता के लिए बेहतर है संपत्ति के नाम इसलिए मुझे रिशेर्पर चेतावनियां अब नहीं मिलती हैं, यह कैसे पता चलता है कि संपत्ति के नाम क्या हैं क्योंकि वे मूल्य से गुजर चुके हैं?

नाम अभिव्यक्तियों से अनुमानित (कंपाइलर द्वारा) अनुमानित हैं। यह केवल तभी काम करता है जब आप किसी क्षेत्र या संपत्ति का उपयोग कर रहे हों (उदाहरण के लिए शाब्दिक या विधि नहीं)। यह सी # भाषा विनिर्देश के खंड 7.6.10 में है।

2) संपत्ति के नामों में सर्वोत्तम अभ्यास क्या है या नहीं। उन्हें होने में नहीं बहुत पढ़ने योग्य नहीं है और कोड नमूने में वे निर्दिष्ट कर रहे हैं तो मैं फिर उन्हें होने को हटाने यह

यदि यह आप और आपकी टीम के लिए अधिक पठनीय है नाम शामिल करने के लिए हमेशा की तुलना में बेहतर नहीं बल्कि है में कल्पना कर सकते हैं, आगे बढ़ो और ऐसा करो। अन्य लोगों के लिए, यह थोड़ा अनावश्यक महसूस कर सकता है। अपने स्थानीय सम्मेलनों में फिट करने के लिए बस अपनी आर # सेटिंग्स समायोजित करें।

आपका तर्क है कि "कोड नमूने में वे निर्दिष्ट हैं" हालांकि विशिष्ट हैं - कुछ उदाहरण हैं जहां वे निर्दिष्ट हैं और कुछ जहां वे नहीं हैं। मुझे संदेह है कि आपको विशेष उदाहरण प्रदाताओं (जैसे एमएसडीएन में) के भीतर भी मिश्रण मिलेगा।

2

जब आप अपना propertyNames ऑब्जेक्ट सेट अप करते हैं तो आप एक अनाम प्रकार का उदाहरण बना रहे हैं - जब आप ऐसा करते हैं तो आप संपत्ति का नाम छोड़ सकते हैं यदि यह उस संपत्ति के समान है जहां से आप मूल्य निर्दिष्ट कर रहे हैं। यही कारण है कि रेशर्पर का कहना है कि नाम अनावश्यक हैं।

स्पष्ट रूप से संपत्ति के नाम बताते समय आपको निजी वरीयता नहीं है; एक बार जब आप उपर्युक्त सम्मेलन से परिचित हों तो मुझे नहीं लगता कि यह पठनीयता को नुकसान पहुंचाता है।

0
  • यह कैसे पता है कि संपत्ति के नाम उपयोग db संपत्ति वर्ग के लिए मैच के लिए किया जाएगा करता है क्योंकि वे मूल्य

द्वारा पारित कर रहे हैं एक nutshel anonimous प्रकार पर बनाई गई हैं में समय संकलित करें। तो संकलक पास किए गए अभिव्यक्तियों का उपयोग करके संपत्ति के नामों को हल करता है और नतीजतन हमारे पास घोषित पाठों के साथ एक सर्वसम्मति वर्ग होता है। आप यह देखने के लिए अपने आईएल की जांच कर सकते हैं कि असेंबली में इस प्रकार और गुण शामिल हैं।

  • क्या सबसे अच्छा अभ्यास में संपत्ति के नाम या नहीं

यह प्रत्येक व्यक्ति पर निर्भर करता है हो रही है। मैं आपकी टीम के लिए एक ही रास्ता चुनने और प्रत्येक डीवी मशीन पर एक ही Resharper सेटिंग्स का उपयोग करने के लिए पुनर्मूल्यांकन होगा।

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