2011-03-22 56 views
1

如果我有以下代碼:在嵌套類中默認調用外部類的主方法嗎?

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

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

的默認狀態下,其主要方法將被執行時,會是外部類的主要方法?另外,另一個問題是,嵌套的內部類和C#中的內部類之間有什麼不同?

+1

-1 - 試圖編譯這將產生明顯的答案。應該提出你的「另一個問題」作爲另一個問題。 – 2011-03-22 15:18:49

+0

@奧斯汀:這有點苛刻! – Nick 2011-03-22 15:21:16

回答

3

哪個主要的方法會被執行,它會成爲外部類的主要方法嗎?

您會得到一個compiler error該程序有多個定義的入口點。

嵌套的內部類和C#中的內部類之間有什麼區別?

內部類是標有無障礙改性劑internal類,它們僅僅是相同的編譯單元(即,組件)內訪問,或對其他組件,其you trust; 嵌套類只是在另一個類的範圍內聲明的類。他們是正交的概念。

如果一個類沒有與任何訪問修飾符(internalpublicprotectedprivateprotected internal)標記,它的默認內部如果是頂級(不嵌套)或私人如果是嵌套

+0

謝謝。所以內部類與受保護的類相似。同一個裝配體是什麼意思?它是相同的包/名稱空間嗎?謝謝。 – RKM 2011-03-22 15:29:24

+0

相同的程序集就像Visual Studio中的同一個項目,它與名稱空間不同。 – 2011-03-22 15:30:49

+0

只有嵌套類可以被「保護」,並且它可以被包含類的子類看到,即使它們在不同的程序集中。它與「內部」不同。 – 2011-03-22 15:31:55

0

an 內部類是包含在另一個類中的類。 安內部類是聲明與internal關鍵字聲明它只在當前大會內可見的類。

+0

好吧,明白了:D我讀了一個內部類可以被同一個程序集中的類訪問。同一個集會是什麼意思?它是相同的包或名稱空間嗎?謝謝 – RKM 2011-03-22 15:31:39

+0

程序集通常是.DLL或.EXE。換句話說,類庫或可執行文件。程序集可以有多個名稱空間,名稱空間可以跨越多個程序集。 – Nick 2011-03-22 15:32:48

+0

太好了,非常感謝:D – RKM 2011-03-22 15:35:52

0

如果你什麼也不做,你會得到一個編譯器錯誤。但是,您可以在項目屬性(VS 2010) - >應用程序選項卡 - >啓動對象中選擇一個入口點。

+0

謝謝,明白了:D – RKM 2011-03-22 15:32:26