2013-01-14 20 views
6

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

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

私はそのUser.GetUser()メソッドを、Userという名前のスコープ(基本クラスから継承)に変数を持つメソッドから呼び出そうとしています。しかし、コンパイラはUser.GetUser()を見つけることができないと言って、私がスコープ内にあるUser変数を参照していると考えていると訴えます。

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

を使用でき
+1

...変数の名前を変更できますか?私は大文字の変数名を使用することをお勧めします。これが理由です。 – FrankieTheKneeMan

答えて

9

global::User.GetUser() 

またはタイプをエイリアスにusingディレクティブ:

using UserType = User; 

... 

UserType.GetUser(); 

:)

+0

華麗!どうもありがとうございました。 – itsme86

6

はあなたが書くことができますが、私は強く名前空間を使用することをお勧めしたいですglobal::User.GetUser()

は使用global::User.GetUser()global

4
  1. を参照してください。

  2. 利用別名:using UserClass = User;

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

  4. 名前の種類を変更します。

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

2

また、静的クラスに別名を使用することもできます。あなたのusingディレクティブでは、あなたが追加することができます。

using StaticUser = User; 

を次に何よりあいまいさはないだろう。

関連する問題