枚举已弃用c#

时间:2011-12-21 10:57:02

标签: c# .net enums

我有一个不推荐使用的(已过时的)函数,它返回一个枚举,我有一个新的函数,它返回一个枚举列表。

其中一个枚举值仅在不推荐使用的函数中使用,因此可以将枚举成员设置为过时(因为它不能在列表)?

4 个答案:

答案 0 :(得分:45)

当然,你可以:

public enum EE
{
    A,

    [Obsolete]
    B
}

答案 1 :(得分:30)

实际上,可能会生成编译器警告或编译器错误。

public enum TestEnum
{
    A,
    [Obsolete("Not in use anymore")]
    B,
    [Obsolete("Not in use anymore", true)]
    C,
}

public class Class1
{
    public void TestMethod()
    {
        TestEnum t1 = TestEnum.A; //Works just fine.
        TestEnum t2 = TestEnum.B; //Will still compile, but generates a warning.
        TestEnum t3 = TestEnum.C; //Will no longer compile. 
    }
}

无论您在何处使用[已废弃]属性,都可以使用此功能。

答案 2 :(得分:1)

我没有在枚举上试过这个,但是这样的事情可能有用:

[Obsolete("Please use ... instead!")]
public enum MyEnum
{
  One,
  Two,
  Three
}

答案 3 :(得分:-3)

正如其他海报所指出的那样,您可以将ObsoleteAttribute添加到枚举成员中,但它仍然可以在您的代码中使用。没有办法以编程方式排除枚举成员,即如果它存在于枚举中则产生编译错误或异常。添加属性只会警告开发人员。