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;
上記のように宣言すると、同一プロジェクト内のすべてのファイルで System と System.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 を管理することで、コードの可読性と保守性を大幅に改善できます。

