2016-08-05 10 views
0

同じ名前空間を持っていても、プロジェクトの別のフォルダでクラスをインスタンス化できません。パブリッククラスが同じネームスペースに関係なくアクセスできない

namespace MyNameSpace 
{ 
     public class MyFirstClass 
     { 
      MySecondClass myClass = new MySecondClass(); 
     } 
} 

namespace MyNameSpace 
{ 
    public class MySecondClass {} 
} 

私はメッセージを取得「MyClassの」変数の上に私のマウスを合わせると:

型または名前空間名は「MyClassの」が見つかりませんでした(あなた はusingディレクティブが欠落していますか、アセンブリ参照?)

これはなぜ動作しないのか分かりません。私は何時間も立ち往生してきた。

+1

'class'以外のメンバーを呼び出しますか?これはC#のキーワードです。クラスのメンバー*として使用すると、混乱を招くようです。 – David

+0

'class'は予約語です。他の名前を使用してください。 – Rahul

+0

私は実際に "クラス"という単語を使用しませんでした。申し訳ありませんが、私は擬似コードでもっと注意していたはずです。 – maximus009

答えて

1

classは、reserved keywordです。変数の名前を変更するだけです。

namespace MyNameSpace 
{ 
     public class MyFirstClass 
     { 
      MySecondClass instance = new MySecondClass(); 
     } 
} 

namespace MyNameSpace 
{ 
    public class MySecondClass 
    { 

    } 
} 
+0

あなたは大歓迎です:)。正しい命名法は常に役立ちます。 –

+0

@DavidL - あなたが正しいです - これは学ぶ方法です:) –

+0

私は実際に "クラス"という言葉を使用しませんでした。私は擬似コードでもっと注意していたはずです。 – maximus009

0

Infactでは、必要に応じて予約されたキーワードの変数名を指定できます。

変数名の前に@を追加するだけで、コンパイラにもキーワードであることを無視して、代わりに変数として扱うように指示します。

namespace MyNameSpace 
{ 
     public class MyFirstClass 
     { 
      MySecondClass @class = new MySecondClass(); 
     } 
} 

namespace MyNameSpace 
{ 
    public class MySecondClass {} 
} 
+0

実際に私の変数に "class"という単語は使われませんでしたが、私の疑似コードをもっと慎重にすべきだったのは残念です。 – maximus009

関連する問題