Q
已弃用c#
24
A
回答
37
当然,你可以:
public enum EE
{
A,
[Obsolete]
B
}
1
-1
正如其他海报指出,你可以添加ObsoleteAttribute
到枚举成员,但它仍然可以在您的代码中使用。没有办法以编程方式排除枚举成员,即如果它存在于枚举中,则会产生编译错误或异常。添加属性只会向开发人员发出警告。
+5
这是不正确的,有一个属性[IsError](http://msdn.microsoft.com/en-us/library/system.obsoleteattribute.iserror.aspx),如果为true,将导致它成为编译器错误而不是警告。 – 2013-06-18 14:29:04
27
实际上,可能会生成编译器警告或编译器错误。
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.
}
}
无论你使用[Obsolete]属性,这都可以工作。
相关问题
- 1. 已弃用C#的App.config?
- 2. C功能已被弃用
- 3. GTK C - `GtkStock'&`GTK_CAN_FOCUS`已弃用
- 4. LongTimeString已被弃用? C#IValueConverter
- 5. C#Threading.Suspend已废弃,线程已被弃用?
- 6. Base64Encoding已弃用:iOS 7.0中已弃用
- 7. [弃权] MultiJson.decode已弃用
- 8. DLR:IAttributesCollection已弃用?
- 9. setCellValue已弃用
- 10. stringWithContentsOfFile已弃用
- 11. 'sharedDispatcher'已弃用
- 12. 'initWithFrame:reuseIdentifier'已弃用
- 13. setFont已弃用?
- 14. UIPopoverController已弃用
- 15. CURLM_CALL_MULTI_PERFORM已弃用
- 16. 已弃用Httpclient
- 17. MKReverseGeocoder已弃用
- 18. AuthorizationExecuteWithPrivileges已弃用
- 19. SVNWCUtil.createDefaultAuthenticationManager已弃用
- 20. File.toURL()已弃用?
- 21. Android:getIntent()已弃用
- 22. 已弃用`route.transitionTo`?
- 23. OnCameraChangeListener()已弃用
- 24. FAXCOMEXLIB已弃用?
- 25. AndroidHttpClient已弃用
- 26. 'dismissModalViewControllerAnimated:'已弃用
- 27. 'gtk_widget_override_font'已弃用
- 28. GameObject.renderer已弃用
- 29. LSOpenApplication已弃用?
- 30. sharedScheduler已弃用?
您是否尝试过使用['ObsoleteAttribute'](http://msdn.microsoft.com/en-us/library/system.obsoleteattribute.aspx)? – 2011-12-21 10:58:27
需要看一些代码... – BoltClock 2011-12-21 10:58:32
@BoltClock为什么?我只是想设置一个枚举为过时... – JohnJohnGa 2011-12-21 10:59:37