2013-04-10 58 views
1

考慮下面的class中的OutputToConsole布爾值。這個類中的靜態布爾和一個私有靜態布爾有什麼區別?

是否有下面的代碼兩行之間有什麼區別?

private static bool OutputToConsole = true; 
static bool OutputToConsole = true; 

他們都似乎作用是相同的。


class Debug 
{ 
    private static bool OutputToConsole = true; 

    public static void Log(string Type, string URL, StringBuilder Parameters) 
    { 
     Write(Type + ":" + new string(' ', 9 - Type.Length) + URL + " { " + 
      Parameters.ToString() + " }"); 
    } 

    public static void Log(string Data) 
    { 
     Write("Response: " + Data); 
    } 

    private static void Write(string Output) 
    { 
     Trace.WriteLine(Output); 
     if(OutputToConsole) Console.WriteLine(Output); 
    } 
} 
+0

它們是相同的。私人是默認的 – 2013-04-10 00:19:16

+0

沒了,如果你沒有把訪問modifitor(如私有,保護,或公共),本場是作爲私 – 2013-04-10 00:19:32

+3

我與人downvoting或試圖關閉這一問題上意見分歧處理,這是一個公平的問題從一個不知道答案的人那裏,問一個問題沒錯,來吧! – 2013-04-10 00:21:55

回答

3

類成員的默認訪問修飾符是在C#private所以,如果你不寫任何東西(如privatepublicprotectedinternal),這就像如果你寫private 100%。

+0

使我不知道爲什麼'private'訪問修飾符甚至存在... – 2013-04-10 00:36:32

+2

因爲人誰不知道的默認值是什麼,private關鍵字有很大幫助!沒有開玩笑,實際上至少在C++中,類默認是私有的,結構體默認爲public。所以你需要私人使私人結構成員和公衆,使公共類成員:) – 2013-04-10 00:40:56

+0

很好,謝謝你的擴展解釋! – 2013-04-10 00:42:11

2

沒有區別。如果沒有顯式設置訪問修飾符,則默認爲私有。

相關問題