2013-04-10 27 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

没有区别。如果没有显式设置访问修饰符,则默认为私有。

相关问题