我正在尝试实现一个Enumeration class,我想在该类的构造函数中自动分配一个Name
字段。
这是我要改进的工人阶级,还有一个示例子类:
public abstract class Enumeration<E> : IComparable where E : Enumeration<E>
{
public readonly int Id;
public readonly string Name;
private static int _count;
protected Enumeration(string name)
{
Id = _count++;
Name = name;
}
// etc
}
public class Color : Enumeration<Color>
{
public readonly static Color Red = new Color(1, 0, 0);
public readonly static Color Green = new Color(0, 1, 0);
public readonly static Color Blue = new Color(0, 0, 1);
public readonly float R;
public readonly float G;
public readonly float B;
private Color(float r,
float g,
float b,
// I wanna move this to super
[CallerMemberName]
string name="") : base(name)
{
R = r;
G = g;
B = b;
}
// etc
}
那么有可能做到这一点吗?
答案 0 :(得分:0)
这里可以免费获取名称,但是您必须对RGB值使用entity.module.ts
类型(不确定到底为什么要使用float,它们应该是整数):
<router-outlet>
但是,至少在您当前的实现中,这对我来说似乎是代码的味道。我不确定为什么您要创建它而不是仅使用.NET <router-outlet>
类型,但这与我无关。
请注意,如果传递没有意义的RGB,这(显然)将以int
中断。另外,请确保考虑到未知的颜色(这仅适用于已知的颜色)。
祝你好运!