Visual Studio(またはResharper)に、デフォルトにする名前空間とそれらを配置するスコープを指定できる設定はありますか?
たとえば、MVCプロジェクトのデフォルトは
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Namespace
{
public class Class1
{
}
}
しかしResharperとStylecopは文句を言う:
すべてのusingディレクティブは、ネームスペース内に配置する必要があります。 [StyleCopルール:SA1200]
ディレクティブの使用はコードでは必須ではなく、安全に削除できます
簡単にデフォルトにする方法はありますか?
namespace Namespace
{
public class Class1
{
}
}
一般的に、クラスのトップにusing
ステートメントを含めることに害はないと思います。実際、そこに含める方が簡単だと思うので、そのルールを尊重するかどうかはあなた次第です。
ただし、これを行うと、すべてのファイルテンプレートが使用可能になり、編集できます。答えを参照してください 新しいC#クラス/インターフェイスのVisual Studioテンプレートを編集するにはどうすればよいですか? 各VisualStudioバージョンのどこにあるかを詳しく説明します。
そこに着いたら、レイアウトを変更できます。たとえば、基本的なクラスは次のようになります。
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$
{
}
}
ただし、変更するファイルがかなりある可能性があります。
これはRe-sharperで設定できます。
再シャープン>オプション> C#>名前空間のインポート> usingディレクティブを最も深いスコープに追加します。
VS 2015および2017用のVisual Studio拡張機能もあり、これにより、事後のusing
宣言が修正されます。また、特定の宣言をグループ化するためのいくつかの構成オプションもあります(System.*
)
https://marketplace.visualstudio.com/items?itemName=everfor88.UsingDirectiveFormatter