将Color声明为常量

问题描述 投票:9回答:5

如何将Color类型声明为const,如下所示:

private const Color MyLovedColor = Color.Blue;

这不起作用,因为Color.Blue是静态而不是const。

(readonly不会帮助我,因为我需要一个“仅支持”常量的属性的颜色

c# .net
5个回答
9
投票

看看KnownColor枚举。它可能会满足您的需求。


6
投票

您只能为const指定一个文字值。在您的情况下,我会更喜欢字符串文字并定义您的颜色如下:

const string mycolor = "Blue";

然后,只要您需要颜色,就可以执行向后转换:

Color mynewcolor = Color.FromName(mycolor);

对不起,但这是保持它的唯一方法const

编辑:或者您也可以将您的颜色保持为(A)RGB属性,存储在单个int值中。请注意,您可以使用十六进制文字来显式设置颜色的不同组件(在ARGB序列中):

const int mycolor = 0x00FFFFFF;
Color mynewcolor = Color.FromArgb(mycolor);

4
投票

System.Drawing.Color是一个struct,这意味着你不能有一个恒定的价值。


3
投票
private static readonly Color MyLovedColor = Color.Blue;

我感谢你最接近的?


0
投票

如果您使用RGB函数返回的long值作为常量怎么办?

例如,为浅蓝色RGB(51,255,255)返回的值是16777011

所以

Private Const ltBlue As Long = 16777011    
txtbox1.backcolor = ltBlue
© www.soinside.com 2019 - 2024. All rights reserved.