1

わかりました、説明しましょう:

.Net でクラスを開始するときはいつでも、使用する必要がある非静的クラスを参照する、開発した別のプロジェクトがあるとしましょう...

あなたには2つのオプションがあります(私が知っていること)

クラスの先頭に using を配置すると、クラスが必要になるたびにプロジェクト全体に明示的に名前を付ける必要がなくなります

using FooBarProj;

public FooBar MyMethod()
{
     FooBar fb = new FooBar();
     //Do stuff
     return fb;
} 

または、それらを明示的に実装します。

public FooBarProj.FooBar MyMethod()
{
     FooBarProj.FooBar fb = new FooBarProj.FooBar();
     //Do stuff
     return fb;
} 

これはまったく効果的な違いをもたらしますか?実行時の効率、コンパイル、何でも?それとも単に開発者の利便性の問題ですか?

4

2 に答える 2

1

コードをコンパイルした後は違いはありません。

ステートメントを使用するusingことも、クラスの名前空間と名前全体を使用することも、結局のところ同じことです。

CIL コードにコンパイルする場合、型への参照は単一のものであり、その参照をどのようにコーディングしたかに関係なく、各参照にはすべての情報が含まれます。

別の名前のクラスを参照する

必要に応じて、次のようにしてクラスの名前を変更することもできます。

using TheString = System.String;

System.Stringこれで、コードで名前を使用して参照できTheStringます。

これらはすべて同じコンパイル済みコードを生成します

  • string
  • System.String
  • String(先頭に置く場合using System;
  • TheString(先頭に置く場合using TheString = System.String;

結論: すべてのusingステートメントは便宜上のものです。

于 2012-10-20T17:34:39.347 に答える
0

私はそれが開発者の利便性の問題だと思います。最初のバージョンは、異なる名前空間に類似したクラス名がある場合を除いて、すべての状況で優れています。のように異なる名前空間に同じクラス名がある場合、クラスの前に明示的な名前空間宣言が必要です。Dog23.class1 と dog45.class1。動作する場合は常に最初のバージョン。短くて読みやすいです。

于 2012-10-20T17:32:52.187 に答える