2011-03-22 11 views
1

は:ネストされたクラスでは、外部クラスのmainメソッドがデフォルトで呼び出されますか?私は次のコードをお持ちの場合

class Outer 
{ 
    static void Main(string[] args) 
    { 
    } 

    class Inner 
    { 
     static void Main(string[] args) 
     { 
     } 
    } 
} 

ザ・デフォルトでは、実行されますmainメソッドを、それが外側のクラスのmainメソッドでしょうか?

また、別の質問は、ネストされた内部クラスと内部クラスの違いは何ですか?

+1

-1 - これをコンパイルしようとすると、明らかな答えが得られます。あなたの「別の質問」は別の質問として尋ねるべきです。 –

+0

@オースティン:それは少し厳しいです! – Nick

答えて

3

主な方法は実行されますが、それは外部クラスの主な方法ですか?

あなたは、プログラムが定義された1つ以上のエントリポイントを持っているcompiler errorを取得します。

入れ子の内部クラスと内部クラスの違いは何ですか?

内部クラスは、you trust又は他のアセンブリと同じコンパイル単位(すなわち、アセンブリ)内でのみアクセス可能なアクセシビリティ修飾子internal付いたクラスです。 ネストされたクラスは、別のクラスのスコープ内で宣言されたクラスに過ぎません。彼らはの直交の概念です。

クラスは、アクセシビリティ修飾子(internalpublicprotectedprivateprotected internal)とマークされていない場合、それならば、それはトップレベル(ネストしていない)、またはプライベートであれば、それはデフォルトで内部ですはネストされていますです。

+0

ありがとうございます。したがって、内部クラスは保護されたクラスに似ています。同じアセンブリではどういう意味ですか?それは同じパッケージ/名前空間ですか?ありがとう。 – RKM

+0

同じアセンブリはVisual Studioの同じプロジェクトに似ていて、同じ名前空間ではありません。 –

+0

ネストされたクラスだけが 'protected'することができ、異なるクラスのアセンブリであっても、そのクラスを含むクラスのサブクラスによって可視になります。それは 'internal'とは異なります。 –

0

インナークラスは、別のクラスに含まれるクラスです。 内部クラスは、internalキーワードで宣言されたクラスで、現在のアセンブリ内でのみ表示されることを示します。

+0

OK、ありがとうございます:D私は内部クラスが同じアセンブリ内のクラスからアクセスできることを読んでいます。同じアセンブリによってどういう意味ですか?それは同じパッケージか名前空間ですか?ありがとう – RKM

+0

アセンブリは、一般に.DLLまたは.EXEです。つまり、クラスライブラリまたは実行可能ファイルです。アセンブリは複数の名前空間を持つことができ、名前空間は複数のアセンブリにまたがることができます。 – Nick

+0

偉大な、ありがとう非常に:D – RKM

0

何もしないと、コンパイラエラーが発生します。ただし、プロジェクトプロパティ(VS 2010) - >アプリケーションタブ - >起動オブジェクトでエントリポイントを選択できます。

+0

ありがとう、それを得た:D – RKM

関連する問題