これまで暗黙的な global using 関連の記事を何個か書いてきましたが、実は global using は書いていませんでした。
■ global using
どこかの1ファイルで using
だけですべてのファイルで using
したことになる機能です。
■ 前提条件
今回のコードを試すには .NET 6 環境と 暗黙的な global using の無効化が必要です。
■ 例
次のコードは Class2 のファイルでは System 名前空間が using
されていないのでエラーになります。
using System; namespace TestApp { internal class Class1 { void Method() => Console.WriteLine(""); } }
namespace TestApp { internal class Class2 { void Method() => Console.WriteLine(""); } }
エラーメッセージ
英語版
Error CS0103 The name 'Console' does not exist in the current context
日本語版
エラー CS0103 現在のコンテキストに 'Console' という名前は存在しません
■ global using
Class1 の using
に global
というキーワードをつけてます。
global using System; namespace TestApp { internal class Class1 { void Method() => Console.WriteLine(""); } }
namespace TestApp { internal class Class2 { void Method() => Console.WriteLine(""); } }
エラーがなくなりました!
便利に使えば使えそうですが、プロジェクト内のほかのソースコードファイルに影響を及ぼす非常に強い機能です。不用意に使うと場合によっては別のファイルのソースコードを壊しかねない点は注意して活用してください。