2009-11-24 13 views
12

मैं बिल्कुल ReSharper पसंद है और इसके बिना काम नहीं होता है, लेकिन कुछ ऐसे भी gotchas है कि मैं में चलाने के लिए और से बचने के लिए सीखा है कर रहे हैं:Resharper gotchas

  • की अनुमति दे ReSharper स्ट्रिंग शाब्दिक स्वचालित रूप से नाम बदलने के लिए वास्तव में आप काट सकते हैं ऐसे उदाहरण जब आपके ऑब्जेक्ट वेरिएबल्स आपके DAL SQL या अन्य स्ट्रिंग स्थिरांक में कॉलम नामों से मेल खाते हैं। मैंने सीखा है कि दूसरी नाम बदलें संवाद प्रकट होने पर अधीर कुंजी को मारने की बजाय मुझे वास्तव में यह देखने की ज़रूरत है कि रेसर्पर क्या सुझाव दे रहा है और अक्सर स्ट्रिंग अक्षर को छोड़ने के चरण को छोड़ देता है।
  • यह एक और अधिक कपटपूर्ण है: जब आपके पास समाधान-वाइड विश्लेषण है, तो ReSharper आपको बताएगा कि सार्वजनिक विधियों का उपयोग किया जाता है या नहीं। इसमें गुणों में गेटर्स और सेटर्स शामिल हैं। यह एक महान विशेषता है लेकिन रेसर्पर को क्या पता नहीं है कि जब आप एक ऐसा डिज़ाइन तैयार कर रहे हैं जो डिज़ाइनर (फॉर्म, उपयोगकर्ता ctrl) में प्रदर्शित किया जाएगा कि संपत्ति गेटर्स और सेटर्स को डिज़ाइन समय पर बुलाया जाता है और दिखाई नहीं देता है संकलन में तो ReSharper सुझाव देगा कि उन संपत्ति के गेटर्स या सेटर्स को निजी बनाया जा सकता है या हटा दिया जा सकता है। लेकिन यदि आप समायोजन करते हैं और फिर डिज़ाइनर में दृश्य लोड करते हैं, तो डिज़ाइनर क्रैश हो जाएगा क्योंकि संपत्ति उपलब्ध नहीं है और त्रुटि संदेश बिल्कुल स्पष्ट नहीं है। संक्षेप में, एक प्रोग्रामर को दृश्य डिजाइन करते समय संपत्ति उपयोग सुझावों पर ध्यान से विचार करने की आवश्यकता होती है।

ये मेरी बड़ी हैं। वहां और क्या है जो मुझे और साथी ReSharper aficionados काट सकता है?

+1

तारों में उपयोग का नाम बदलने की पेशकश सिर्फ एक बेवकूफ विशेषता है। यह मुझे हर समय गधे में काटता है और मैं कभी नहीं * स्ट्रिंग्स खोजना चाहता हूं। रिफैक्टरिंग का पूरा * बिंदु * यह है कि यह बुलेटप्रूफ है। तार के भीतर का नाम बदल रहा कभी नहीं बुलेटप्रूफ है - मैं नहीं जानता कि क्यों वे भी यह पेशकश करते हैं। –

+1

@ किर्क: मैं सहमत हूं। कम से कम इसे डिफ़ॉल्ट रूप से अक्षम किया जाना चाहिए। इस पर –

उत्तर

22

जब मैं प्रीप्रोसेसर निर्देशों में भाग लेता हूं जो सशर्त संकलन करने के लिए #ifs का उपयोग करते हैं, और वर्तमान कॉन्फ़िगरेशन सेट किया गया है ताकि कोड का एक ब्लॉक छुपा हुआ हो, तो यह # if'd कोड नहीं दिखता है और अनुशंसा करेगा एक वैरिएबल को यंकिंग करना जो कोड का उपयोग करता है, सोच रहा है कि इसे कभी नहीं कहा जाता है।

+4

+1। Resharper सशर्त संकलक बयान को समझने के लिए प्रतीत नहीं होता। – camainc

+5

मैं आज में आए और सूचित किया है: http://youtrack.jetbrains.com/issue/RSRP-337056 –

+1

@RudiVisser आप इस सूचना दी है एक लंबे समय पहले और समस्या अभी भी खुला है! यह भी usings साथ कोई समस्या है, Resharper सोचता है कि कुछ नामस्थान जबकि इस मामले ... –

14

आप प्रयुक्त द्वारा गुणों को चिह्नित कर सकते हैं विशेष रूप से विशेषता और ReSharper इसे हटाने का सुझाव नहीं देगा।

+1

अच्छा एक नहीं है हटाया जा सकता है, हालांकि मैं एक उत्पादकता उपकरण निर्देशित करने के लिए के रूप में यह किसी तीसरे पक्ष को कोड बांध विशेषताओं का उपयोग से बचना चाहते पैकेज। वहाँ संभवतः एक सेटिंग जहां R # नियंत्रण-व्युत्पन्न वर्ग में विशेषताओं की उपेक्षा कर सकते है?या शायद यह अगले रिलीज के लिए जेटब्रेन टीम के लिए एक फीचर सुझाव होना चाहिए। –

+0

लॉल। टीम 23! मुझे लगता है कि शायद मैंने अभी एक फीचर अनुरोध किया है! –

+6

JetBrains असेंबली का संदर्भ देना आवश्यक नहीं है। आप इन विशेषताओं को किसी भी स्थान और नामस्थान पर अपनी परियोजना में कॉपी कर सकते हैं। ReSharper → विकल्प → कोड एनोटेशन → क्लिपबोर्ड पर डिफ़ॉल्ट कार्यान्वयन की प्रतिलिपि देखें। – derigel

2

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

7

हमने अतीत में फ़ाइल-व्यापी सशर्त संकलन का उपयोग किया है, और Resharper उन लोगों के बारे में पूरी तरह से पागल हो जाता है। यह नहीं पता कि परिस्थितियां भी मौजूद हैं, और संघर्ष और त्रुटियों का भार तब दिखाई दे सकता है जब दोनों फाइलें समान स्थिरांक और विधियों की घोषणा करती हैं।

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' Or '$(Configuration)|$(Platform)' == 'Release|x64'"> 
    <Compile Include="SomeFileFor.x64.cs"> 
     <SubType>Code</SubType> 
    </Compile> 
</ItemGroup> 
<ItemGroup Condition=" !('$(Configuration)|$(Platform)' == 'Debug|x64' Or '$(Configuration)|$(Platform)' == 'Release|x64')"> 
    <Compile Include="SomeFileFor.x32.cs"> 
     <SubType>Code</SubType> 
    </Compile> 
</ItemGroup> 
2

सशर्त संकलन ReSharper 8 को जोड़ा गया है। बस अंतिम संस्करण प्राप्त करें।