2014-04-22 40 views
1
  1. 如果我們沒有指定公共/私人/受保護,它會是什麼?
  2. 有沒有什麼被稱爲私人課程?

回答

3

1:依賴於類是否是嵌套與否。頂級課程默認爲internal。嵌套類默認爲private

class TopLevelClass { 
    class PrivateClass { 

    } 
} 

2:是的,但只爲嵌套類:

class TopLevelClass { 
    private class ExplicitlyPrivateClass { 

    } 
    class ImplicitlyPrivateClass { 

    } 
} 
1

如果你沒有一個主class指定Public/Private/Protected這將是internal,對於一個嵌套類的默認訪問說明符會private

private class存在。只有在另一個班級內聲明時纔可以訪問private class。意味着它是private到父類作爲

class example //which is default interal 
{ 
     private class ex 
     { 
     } 

     class ex1 //default private 
     { 
     } 
} 
+2

「如果您未指定Public/Private/Protected,它將是內部的。」這也取決於是否嵌套類型 –

+0

@MarcGravell我已更新:) – Bharadwaj

1

1)如果沒有指定修飾符,能見度將取決於它被省略的情況;該問題在this問題中討論。

2)在下面的代碼中,InnerClassprivateOuterClass

namespace ClassTest 
{ 

    class OuterClass 
    { 
     private class InnerClass 
     { 
     } 

     OuterClass() 
     { 
      InnerClass Test = new InnerClass(); 
     } 

    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      OuterClass TestOne = new OuterClass(); 
      InnerClass TestTwo = new InnerClass(); // does not compile 
     } 
    } 
} 
+1

「如果未指定修飾符,則可見性將爲私有。」 - 否,實際上在所有情況下,可見性都是「內部」。 –

+0

謝謝你的提示,我沒有意識到這一點;答案改變了。 – Codor

+0

「1)如果未指定修飾符,則可見性將爲內部。」 - 仍然是錯誤的,因爲你解釋2 –

相關問題