2010-12-14 8 views
0
namespace hi 
{ 
    class hithere 
    { 
     public int numberOne = 12; 
     public int numberTwo = 12; 

     static void yo() 
     { 
      public int numberThree = 12; 
      private int numberFour = 12; 
     } 
    } 
} 

このコードでは、numberOne、numberTwo、numberThree、およびnumberFourという変数の違いを教えてもらえますか?プライベートvsパブリック変数

+0

これは有効なC#コードのようではありません。 IIRCでは、ローカル変数の前にpublic/privateキーワードを置くことはできません。あなたの例が正しいと確信していますか? –

+1

これはどんなストレッチでもコンパイルされません。 'function yo'は完全に無効で、意味をなさない。 –

+2

'function yo'とは何でしょうか?その名前は関数を示唆していますが、paramsがなく、 'public'と' private'の使用は内部クラスを示唆しています。コードスニペットはコンパイルされず、意図した内容が実際には明確ではありません。 – Juliet

答えて

1

numberOneとnumberTwoは、ヒープ内のパブリックインスタンス変数です。ヒラリーオブジェクトのインスタンスを持つオブジェクトの内部で直接アクセスできます。 numberThreeとnumberFourは、インスタンス変数ではなく、関数yoのスコープ内にカプセル化され、それぞれのスタックに格納されるため、この方法ではアクセスできません。

+0

ダングが遅すぎます。 – 0x808080

+0

待ちに待ったので、別のクラスからアクセスできますか?私はまだ、OneとTwoのように、公的変数と私的変数の違いを理解していません。 – DLA

+0

あなたは別のクラスのふりをしています...このコードを書くことができます: HiThere hiObj =新しいHiThere(); 人のコメントボックスは、このコメントボックスにキャリッジリターンを挿入するためにEnterキーを押すと、自動的に送信されます... if(hiObj.numberOne == hiObj.numberTwo) – 0x808080

9

numberOneおよびnumberTwoは、クラスのメンバー変数です。 numberThreeとnumberFourはローカル変数で、スコープは関数です。
次に、ローカル変数のアクセス修飾子(private/public)を宣言することはできません。

+0

それで彼の質問は意味をなさない。おそらく何らかの疑似C#コードでしょう。 –

関連する問題