【C#】global using の使い方とメリット

C# 10 では global using が導入され、全ファイル共通で利用できる using 宣言を簡単に定義できるようになりました。これにより、冗長な記述を減らし、プロジェクト全体で統一した using を管理しやすくなります。本記事では global using の基本とメリットを解説します。

従来のusing宣言

C# 10 以前では、各ソースファイルごとに必要な using を記述する必要がありました。

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> list = new() { "A", "B" };
        Console.WriteLine(string.Join(", ", list));
    }
}

小規模なコードでは問題ありませんが、プロジェクトが大きくなると全ファイルに同じ using を書くことになり、冗長になります。

global usingの基本

C# 10 以降では、global using を使うことで全ファイルで共通の using を定義できます。

global using System;
global using System.Collections.Generic;

上記のように宣言すると、同一プロジェクト内のすべてのファイルで SystemSystem.Collections.Generic が自動的に利用可能になります。

global using の書き方の種類

  • global using 名前空間; … 全ファイルで指定の名前空間をインポート
  • global using static クラス名; … 静的メソッドを全ファイルで直接呼び出し可能
  • global using エイリアス = 名前空間; … 全ファイルでエイリアスを利用可能
global using static System.Math;
global using Json = System.Text.Json.JsonSerializer;

class Program
{
    static void Main()
    {
        Console.WriteLine(Sqrt(16)); // using static により直接呼び出し可能
        string json = Json.Serialize(new { Name = "Taro" });
        Console.WriteLine(json);
    }
}

管理方法

プロジェクト全体で利用する global using は、GlobalUsings.cs など専用のファイルを作ってまとめて管理するのが一般的です。

// GlobalUsings.cs
global using System;
global using System.Collections.Generic;
global using System.Linq;

こうすることで using の重複をなくし、必要な名前空間を一箇所で把握できます。

メリット

  • 全ファイルに共通の using をまとめられる
  • 冗長な記述を省き、コードの可読性を高められる
  • 名前空間の管理を一元化でき、保守性が向上する
  • チーム開発で統一した using を強制できる

まとめ

global using を活用すると、C# プロジェクト全体で冗長な using 宣言を省略し、名前空間を一元管理できます。
特に大規模開発やチーム開発では、専用のファイルにまとめて global using を管理することで、コードの可読性と保守性を大幅に改善できます。