理論的な質問:これを行うことの違いはありますか:
using System;
...
var foo = new String("foo");
この:
var foo = new System.String("foo");
DLLのロード?性能差?
主に、私の疑問は、この状況でのコードのベストプラクティスは何ですか?
いいえ、完全に同一の IL にコンパイルされます。
using
ディレクティブ(「名前空間アクセサー」という用語はありません) は、単純な名前を完全修飾名に解決しようとするときに、その名前空間を調べる必要があることを C# コンパイラに伝える方法にすぎません。
(もちろんString(String)
、.NET にはコンストラクターがないため、どちらも実際にはコンパイルに失敗しますが、それは別の問題です。)
組み込みのエイリアスを使用することは、タイプstring
を使用することと同じであることに注意してくださいSystem.String
。これは実際には単なるエイリアスです。例えば:
// Just one type!
string x = new String(new char[10]);
同じこと。もっと好きな方を使ってください。を使用しusing
、名前の衝突が発生したときにフル ネームにフォールバックします。
他の人が言ったように、パフォーマンス上の利点はありません。using を使用しないことの利点の 1 つは、名前空間のあいまいさを回避できることです。2 つの異なるタイプのページがあり、1 つはサイトのページを参照し、もう 1 つは本のページを参照しているとします。これらは、異なるプロパティを持つ 2 つの個別のオブジェクトです。この場合、参照しているページのタイプを区別できるように、名前空間全体を書き出す必要があります。