为什么不能通过表达式引用类型?

Sae*_*ani 4 c# enums types casting

以下代码似乎无法编译,无论我多么努力地编译它:P可以somone请告诉我我做错了什么?

public class LUOverVoltage
{
    public string Name { get; set; }
    public enum OVType { OVLH, OVLL }

    public List<string> PinGroups = new List<string>();

    public void Add(string name, OVType type, string Grp)
    {
        this.Name = name;
        this.OVType = type; //Why cannot reference a type through an expression?

        PinGroups.Add(Grp);
    }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*aos 15

你混淆了枚举类型本身的枚举类型的字段.你的代码和说法一样有用string="bla".

public enum OVType { OVLH, OVLL }
public class LUOverVoltage
{
    public string Name { get; set; }
    public OVType OVType { get; set; }
Run Code Online (Sandbox Code Playgroud)

这声明了一个名为的类型OVType和一个具有相同名称的属性.现在你的代码应该工作了.


作为旁注,您的类型名称和属性名称都违反了.net命名准则.

OverVoltKind只是命名枚举类型和属性Kind.