2014-10-29 81 views
10

在Visual Studio(或Resharper)中是否有一個設置允許您指定哪些命名空間應該是默認的,以及它們放入的範圍?停止Visual Studio在命名空間外放置使用指令

默認爲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 – 2014-10-29 11:36:58

+0

@AlexK。謝謝。投票關閉這個作爲愚蠢:) – 2014-10-29 11:40:18

+0

@dav_i:答案可能是重複的 - 但我猜你不知道模板存在?所以基於這個事實可能值得保留這個問題。 – Ian 2014-10-29 11:43:42

回答

9

一般來說,我不相信在您的班級中包含using州級考生有任何傷害。我實際上發現將它們包括在內容更容易,所以取決於你是否要尊重這個規則。

但是,如果您這樣做,所有的文件模板都可用並且可以編輯。請參閱回答How do I edit the Visual Studio templates for new C# class/interface?來詳細說明他們在每個Visual Studio版本上的位置。

一旦你在那裏你可以改變的佈局,因此,例如一個基本類的樣子:

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 2017-07-04 09:33:51

10

您可以在Re-sharper中進行設置。

Re-sharper>選項> C#>名稱空間導入>將使用指令添加到最深的範圍。

+0

嗨,謝謝你的回答。這個設置似乎只在_adding_ namespaces時才起作用。不創建新文件。 – 2014-10-29 11:45:59

+0

您可以使用上面建議的模板,請參閱http://stackoverflow.com/questions/2072687/how-do-i-edit-the-visual-studio-templates-for-new-c-sharp-class-接口 – 2014-10-29 11:54:22

+0

重置該標誌適用於ReSharper8.2和VS2013。繞過。 – 2015-06-04 06:04:34

相關問題