6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【C#】すべてのソースファイル(.csファイル)でUsingディレクティブを参照する方法

Last updated at Posted at 2022-02-09

結論

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]経ったぞ!");

image.png
通常であればusingディレクティブをソースファイルの上部に記載すればエラーは発生しなくなります。

エラーが発生しないソース
using System.Diagnostics;

var sw = new Stopwatch();

sw.Start();

Thread.Sleep(1000);

sw.Stop();

Console.WriteLine($"{sw.ElapsedMilliseconds}[ms]経ったぞ!");

image.png

しかし、上記の実装だとStopWatchクラスを使用したいソースファイルの上部に毎回using System.Diagnostics;と記載する必要があり面倒です。そこでglobal usingを使用します。今回は_Imports.csというソースファイルを作成してその中に記載することにします。
まず、_Imports.csファイルを作成します。
image.png
作成した_Imports.csファイルにglobal using System.Diagnostics;ディレクティブを追加します。
image.png
こうすることで、StopWatchクラスを使用したいソースファイルの上部でusingディレクティブを記載しなくても良くなります。

image.png
また、globalとかほざいてますがスコープはプロジェクトです。
なので、下記のように別プロジェクトでは参照されずにエラーが発生します。
image.png

以上です。

追記(2022/02/10)

Usingステートメントと記載しておりましたが正しくはUsingディレクティブです。

Usingステートメントとusingディレクティブに違いは下記をご参照下さい。

usingステートメントとは
usingディレクティブとは

6
8
1

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
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?