【发布时间】:2026-02-15 10:55:01
【问题描述】:
MSDN Faq 和 other basic guides 似乎忽略的关于静态变量的四个快速问题。
public static是否与static public相同?
例如public static class Globals {...}
vs.static public class Globals {...}
一样吗?不一样?似乎——就像函数一样——
C#中的public static class中的变量需要通过static类的命名全局实例在其他类中看到public static状态。为什么是这样?从幼稚的角度来看,这似乎是不直观的(似乎public static class将提供class的单个public实例,其中包含可用的任何公共变量)。显然情况并非如此,所以我想从C#专家那里获得一些观点,了解为什么必须在staticclass对象static中创建成员变量以提供访问权限。
(注意:MSDN Faq 包含一个非staticclass与static成员变量的示例,但没有讨论如果有任何差异具有public static class的static成员。)(即,如果双重static状态有什么后果?)
例如public static class Globals { public static Camera camera1; }//doubly static在
public static class中的publicnon-static函数是否合适?我可以看到你不想暴露一些东西,但在这种情况下你不想让它们private。 (例子越简单越好,我是在C#自学的,还在努力理解更复杂的话题,比如reflection等)奇怪的是,
public static class中的public enum在没有static关键字的情况下通过命名的全局实例可见。为什么这里没有强制执行典型的static要求?如果我使用可见的public enum而不是public static enum,有什么需要担心的吗?public static class Globals { public enum Dummy { Everything=42}; }//Enum is visible w/out static!
提前致谢。对于多个问题,我很抱歉,我在考虑是否将其拆分为多个帖子,但这都与C# static 的使用有关,所以我认为一个帖子是最合适的。
【问题讨论】:
标签: c# class static enums visibility