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
を管理することで、コードの可読性と保守性を大幅に改善できます。