c# - 静态枚举类成员

标签 c# .net

我可以将我的 enum 声明为另一个类中的静态成员吗​​? 我只想要这个枚举中的一个实例

public enum MyEnum 
{
    Add,
    Remove
}

public class MyClass 
{
    private static MyEnum _myEnum;


    public MyEnum Enum
    {
        get { return _myEnum; }
        set { _myEnum = value; }
    }
}

这样做可以吗?

最佳答案

我强烈建议也使属性 static 因为从非静态属性获取/设置静态字段毫无意义。

这不仅令人困惑。我会称之为乞求错误。

考虑一下:

var c1 = new MyClass { Enum = MyEnum.Add };
var c2 = new MyClass { Enum = MyEnum.Add };
c2.Enum = MyEnum.Remove;
Console.Write(c1.Enum.ToString());

您期望输出什么?这两个实例现在都有 MyEnum.Remove,即使我只设置了一个。

如果你把它设为 static 上面甚至不会编译这是一件好事。

您需要通过类名使用该属性,这清楚地表明它是一个静态属性:

MyClass.Enum = MyEnum.Remove;

关于c# - 静态枚举类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22537719/

相关文章:

c# - 什么是 View 引擎?它实际上做了什么?

c# - Razor 中的嵌套 Html.Action 调用

c# - 为 PrincipalContext 指定容器后无法找到用户

.net 到 COM 服务器的接口(interface)失败,出现 0x80080005

c# - 多个包括使用 Entity Framework 和存储库模式

c# - 将可见性属性绑定(bind)到变量

c# - WPF 自定义词典仅在 Windows 10 上的 %TEMP% 中创建 .dict 文件

c# - 属性如何继承?

C# tcp 套接字如何判断正在发送的对象类型?

c# - 用于 FTP 的文件系统观察器