名前空間全体をインポートする場合と、エイリアシングを使用して 1 つのクラスのみをインポートする場合とでは、パフォーマンスに違いはありますか? もしそうなら、それはどのくらいの違いですか?
例:
名前空間全体のインポート:
using System.Reflection;
1 つのクラスのみをインポートするためのエイリアス:
using BindingFlags = System.Reflection.BindingFlags;
名前空間全体をインポートする場合と、エイリアシングを使用して 1 つのクラスのみをインポートする場合とでは、パフォーマンスに違いはありますか? もしそうなら、それはどのくらいの違いですか?
例:
名前空間全体のインポート:
using System.Reflection;
1 つのクラスのみをインポートするためのエイリアス:
using BindingFlags = System.Reflection.BindingFlags;
ゼロ。名前空間のインポートはコンパイル時の機能であり、生成される IL はどちらの方法でもまったく同じになります。
いいえ、これはプログラマーの助けになるだけです。コンパイラーによって生成される CIL はまったく同じです。
性能差はありません。「クラス名を指定するときにここを見てください。ここにあるかもしれません」と言う人もいます。もう1つは、「このクラスまたは名前空間と言うとき、これを使用することを意味します」と言います。
いいえ、さらに広いです。.net コアを含む dll をロードすると、多数の名前空間が含まれます。すでにロードされている dll の外に出ない限り、名前空間をインポートしても問題はありません。