OVE*_*ONE 1 c# enums initialization
我可能以错误的方式看待枚举,但想确保我在如何使用它们方面拥有正确的理论。
假设我们有一个名为 Colour 的枚举。
enum Colour { Red, Green, Blue };
Run Code Online (Sandbox Code Playgroud)
红、绿、蓝用 0-255 的值表示。我正在尝试在类形状内初始化此枚举,但我不太确定如何进行。
public class Shape
{
Colour colour;
public Shape(Colour c)
{
//Some attempts at initialization.
//Treating It like an object
this.colour =
c{
255,255,255
};
//Again
this.colour.Red = c.Red
this.colour.Blue = c.Blue
this.colour.Green = c.Green
Colour.red = c.red?
}
}
}
Run Code Online (Sandbox Code Playgroud)
我对枚举的看法可能还很遥远。有人能给我一些指点吗?
在这种情况下,您可能希望使用 Colorstruct而不是枚举。在 C# 中,枚举是单值构造,但具有三个值(红色、绿色和蓝色)。我可能会这样做:
public struct Colour
{
private byte red;
private byte green;
private byte blue;
public Colour(byte r, byte g, byte b)
{
this.red = r;
this.green = g;
this.blue = b;
}
}
public class Shape
{
public Colour Colour { get; private set; }
public Shape(Colour c)
{
this.Colour = c;
}
}
Run Code Online (Sandbox Code Playgroud)
然后当您创建形状对象时:
var shape = new Shape(new Colour(203, 211, 48));
Run Code Online (Sandbox Code Playgroud)
编辑:正如克里斯在评论中指出的那样,您可以简单地使用System.Drawing.Color框架提供的结构。上面的例子可以简化为:
using System.Drawing;
public class Shape
{
public Color Colour { get; private set; }
public Shape(Color c)
{
this.Colour = c;
}
}
var shape = new Shape(Color.FromArgb(203, 211, 48));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5789 次 |
| 最近记录: |