search
LoginSignup
3

posted at

updated at

Organization

C#でクラス新規作成時のテンプレートを編集する

はじめに

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
{
    //...
}

変わった点としては以下になります。

  1. ImplicitUsingsに定義されているusingの削除
  2. namespaceをファイルスコープに変更
  3. クラスのアクセス修飾子を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もあったので、必要に応じて手を加えることができそうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3