はじめに
C#でクラスを新規作成すると標準では以下のようになっていると思います。
DefaultClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
internal class DefaultClass
{
//...
}
}
これを新規作成時に以下になるよう編集します。
UpdateClass.cs
namespace ConsoleApp1;
public class UpdateClass
{
//...
}
変わった点としては以下になります。
- ImplicitUsingsに定義されているusingの削除
- namespaceをファイルスコープに変更
- クラスのアクセス修飾子をpublicに変更
やること
不要なusingの削除とアクセス修飾子をpublicに変更
こちらはクラスのテンプレートファイルがVSのインストール時に用意されているので、それを編集します。
自分の環境では以下に保存されていました。(VS2022, Professional)
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1041\Class\Class.cs
このファイルを開くと以下のようになっています。
Class.cs
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$
{
}
}
不要なusingを削除し、アクセス修飾子を追加します。(編集には管理者権限が必要)
Class.cs
namespace $rootnamespace$
{
public class $safeitemrootname$
{
}
}
namespaceをファイルスコープに変更
これを行うにはソリューションの.editorconfigファイルを編集します。
csharp_style_namespace_declarations=file_scoped:suggestion
以上です。
おわりに
クラス新規作成時に毎回作業を減らすことができました。
テンプレートファイルにはクラス以外にinterfaceもあったので、必要に応じて手を加えることができそうです。