5

プロジェクトが名前空間を使用しない場合に、変数の代わりに静的型を使用するようにコンパイラーに指示する方法はありますか?

たとえば、さまざまな静的メソッドと非静的メソッドを持つUserというクラスがあります。静的メソッドの1つがと呼ばれているとしましょうGetUser()

User.GetUser()Userというスコープ(基本クラスから継承)の変数もあるメソッドからそのメソッドを呼び出そうとしています。User.GetUser()ただし、コンパイラは、スコープ内にあるUser変数を参照していると考えているため、見つからないと文句を言います。

このプロジェクトで名前空間を使用した場合、私はそれを実行できますがns1.User.GetUser()、この場合は実行できません。変数Userではなく型を参照していることをコンパイラーに伝える方法はありますか?User

4

4 に答える 4

9

次を使用できます。

global::User.GetUser()

または、タイプをエイリアスするためのusingディレクティブ:

using UserType = User;

...

UserType.GetUser();

ただし、名前空間を使用することを強くお勧めします:)

于 2013-01-14T18:48:29.910 に答える
6

書けglobal::User.GetUser()ますか?

グローバルを見る

于 2013-01-14T18:49:24.090 に答える
4
  1. を使用しglobal::User.GetUser()ます。

  2. エイリアスを使用します。using UserClass = User;

  3. 変数の名前を変更します。

  4. タイプの名前を変更します。

  5. 変数のスコープを縮小して、使用しているスコープ内に存在しないようにします。

于 2013-01-14T18:49:55.047 に答える
2

または、静的クラスのエイリアスを使用することもできます。usingディレクティブでは、次を追加できます。

using StaticUser = User;

そうすれば、これ以上のあいまいさはなくなります。

于 2013-01-14T18:50:32.363 に答える