結論
global using
を使います。
global using System.Diagnostics;
解説
using
の前にglobal
をつけることでそのプロジェクトのすべてのソースファイル(.csファイル)にusing
ディレクティブが適応されます。例えば、下記のソースコードをソースファイルに実装するとエラー CS0246 型または名前空間の名前 'Stopwatch' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
というエラーが発生します。
var sw = new Stopwatch();
sw.Start();
Thread.Sleep(1000);
sw.Stop();
Console.WriteLine($"{sw.ElapsedMilliseconds}[ms]経ったぞ!");
通常であればusing
ディレクティブをソースファイルの上部に記載すればエラーは発生しなくなります。
using System.Diagnostics;
var sw = new Stopwatch();
sw.Start();
Thread.Sleep(1000);
sw.Stop();
Console.WriteLine($"{sw.ElapsedMilliseconds}[ms]経ったぞ!");
しかし、上記の実装だとStopWatch
クラスを使用したいソースファイルの上部に毎回using System.Diagnostics;
と記載する必要があり面倒です。そこでglobal using
を使用します。今回は_Imports.cs
というソースファイルを作成してその中に記載することにします。
まず、_Imports.cs
ファイルを作成します。
作成した_Imports.cs
ファイルにglobal using System.Diagnostics;
ディレクティブを追加します。
こうすることで、StopWatch
クラスを使用したいソースファイルの上部でusing
ディレクティブを記載しなくても良くなります。
また、global
とかほざいてますがスコープはプロジェクト
です。
なので、下記のように別プロジェクトでは参照されずにエラーが発生します。
以上です。
追記(2022/02/10)
Usingステートメント
と記載しておりましたが正しくはUsingディレクティブ
です。
Usingステートメント
とusingディレクティブ
に違いは下記をご参照下さい。