我有一个不推荐使用的(已过时的)函数,它返回一个枚举,我有一个新的函数,它返回一个枚举列表。
其中一个枚举值仅在不推荐使用的函数中使用,因此可以将枚举成员设置为过时(因为它不能在列表)?
答案 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
添加到枚举成员中,但它仍然可以在您的代码中使用。没有办法以编程方式排除枚举成员,即如果它存在于枚举中则产生编译错误或异常。添加属性只会警告开发人员。