2014-10-29 8 views
10

क्या विजुअल स्टूडियो (या रिशेर्पर) में कोई सेटिंग है जो आपको यह निर्दिष्ट करने की अनुमति देती है कि कौन से नामस्थान डिफ़ॉल्ट होना चाहिए और उन्हें किस दायरे में रखा गया है?दृश्य स्टूडियो को नामस्थान के बाहर निर्देशों का उपयोग करने से रोकें

उदाहरण के लिए एक MVC परियोजना के लिए डिफ़ॉल्ट

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Namespace 
{ 
    public class Class1 
    { 
    } 
} 

है, लेकिन Resharper और StyleCop शिकायत:

सभी का उपयोग कर निर्देशों नाम स्थान के अंदर रखा जाना चाहिए। [StyleCop नियम: SA1200]
निर्देश का उपयोग कोड वजह से नहीं है और हो सकता है सुरक्षित रूप से

हटाया वहाँ डिफ़ॉल्ट बस बनाने के लिए एक रास्ता है:

namespace Namespace 
{ 
    public class Class1 
    { 
    } 
} 
+1

हां, आप कक्षा टेम्पलेट को संपादित कर सकते हैं; http://stackoverflow.com/questions/2072687/how-do-i-edit-the-visual-studio-templates-for-new-c-sharp-class-interface –

+0

@AlexK। धन्यवाद। इसे डुप्ली के रूप में बंद करने के लिए वोट दिया गया :) –

+0

@dav_i: उत्तर एक डुप्लिकेट हो सकता है - लेकिन मुझे लगता है कि आप नहीं जानते थे कि टेम्पलेट मौजूद थे? तो इस तथ्य के आधार पर सवाल रखने के लायक हो सकता है। – Ian

उत्तर

9

आम तौर पर मैं विश्वास नहीं करते आपकी कक्षा के शीर्ष पर using कथन शामिल करने में कोई हानि है। मुझे वास्तव में उन्हें वहां शामिल करना अधिक आसान लगता है, इसलिए यह आप पर निर्भर करता है कि आप उस नियम का सम्मान करना चाहते हैं या नहीं।

यदि आप करते हैं, तो सभी फ़ाइल टेम्पलेट उपलब्ध हैं और संपादित किए जा सकते हैं। How do I edit the Visual Studio templates for new C# class/interface? का उत्तर विस्तार से देखें जहां वे प्रत्येक विजुअल स्टूडियो संस्करण पर रहते हैं।

वहां पहुंचने के बाद आप लेआउट बदल सकते हैं, तो उदाहरण के लिए एक बुनियादी वर्ग की तरह दिखता है:

using System; 
using System.Collections.Generic; 
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq; 
$endif$using System.Text; 
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks; 
$endif$ 
namespace $rootnamespace$ 
{ 
    class $safeitemrootname$ 
    { 
    } 
} 

आप नीचे दिए गए या इसी तरह करने के लिए इस बदल सकता है:

namespace $rootnamespace$ 
{ 
    using System; 
    using System.Collections.Generic; 
    $if$ ($targetframeworkversion$ >= 3.5)using System.Linq; 
    $endif$using System.Text; 
    $if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks; 
    $endif$ 

    class $safeitemrootname$ 
    { 
    } 
} 

वहाँ हो सकता है यद्यपि बदलने के लिए कुछ फाइलें हो!

+0

_ सामान्यतः मुझे विश्वास नहीं है कि शीर्ष पर बयानों का उपयोग करने में कोई हानि है आपका class_ - कंपाइलर नेमस्पेस आंतरिक से शुरू होने वाले निर्देशों की खोज करेगा और यदि नहीं मिला तो नामस्थान के बाहर निर्देशों की तलाश जारी रहेगा। तो - यदि आप नेमस्पेस के बाहर निर्देश डालते हैं और मैं नामस्थान के अंदर एक ही नाम के साथ कक्षा बनाउंगा - तो "मेरी" कक्षा का उपयोग किया जाएगा। नेमस्पेस के अंदर निर्देश डालना आपके कोड – Fabio

10

आप इसे पुनः-तेज में सेट कर सकते हैं।

पुन: तेज> विकल्प> सी #> नेमस्पेस आयात> गहन दायरे में निर्देश का उपयोग करके जोड़ें।

+0

में अधिक सुरक्षा जोड़ने के लिए बहुत छोटा प्रयास है, आपके उत्तर के लिए धन्यवाद। यह सेटिंग केवल तब काम करती है जब _adding_ namespaces। नई फाइलें नहीं बना रही हैं। –

+0

आप ऊपर सुझाए गए टेम्पलेट का उपयोग कर सकते हैं, http://stackoverflow.com/questions/2072687/how-do-i-edit-the-visual-studio-templates-for-new-c-sharp-class- इंटरफ़ेस –

+0

उस फ़्लैग को रीशेर 8.2 और वीएस2013 के लिए रीसेट करें। निकलने का रास्ता। –

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