【发布时间】:2011-04-20 03:48:41
【问题描述】:
我需要创建一个包含一些方法和一长串常量的类型。
经过一番研究,我想我想采用与System.Drawing.Color 结构相同的方法。但是,查看此结构的来源(从元数据生成)会给我如下信息。
public byte A { get; }
public static Color AliceBlue { get; }
public static Color AntiqueWhite { get; }
public static Color Aqua { get; }
public static Color Aquamarine { get; }
public static Color Azure { get; }
public byte B { get; }
// ...
谁能向我解释静态颜色值(与包含结构相同的类型)是如何被初始化的?我一定是错过了什么。
【问题讨论】:
-
我认为他们不会公开每一个实现细节。在任何情况下,我的第一个猜测是每个静态属性只返回一个带有适当 ARGB 值的
new Color(...)。 -
我明白了。所以你说他们没有被初始化。相反,它们是在请求时生成的。如果是这样,这种方法听起来并不像我最初想的那样干净。
-
假设 Color 是可变的(我实际上没有使用过),你每次都想要它的新实例,不是吗?
-
@Jonathan Wood:这些是静态属性,它们只被初始化一次,而不是在请求时
-
@Jonathan Wood @BrokenGlass:是的,记住结构是值类型。
标签: c# .net system.drawing.color