`

Obsolete属性

    博客分类:
  • C#
 
阅读更多

Obsolete 属性将某个程序实体标记为一个建议不再使用的实体。每次使用被标记为已过时的实体时,随后将生成警告或错误,这取决于属性是如何配置的。例如:

 
      [System.Obsolete("use class B")]
class A
{
    public void Method() { }
}
class B
{
    [System.Obsolete("use NewMethod", true)]
    public void OldMethod()  { }
    public void NewMethod()  { }
}

在此例中,Obsolete 属性应用于类 A 和方法 B.OldMethod。由于应用于 B.OldMethod 的属性构造函数的第二个参数设置为 true,因此使用此方法将导致编译器错误,而使用类 A 只会产生警告。但是,调用B.NewMethod 既不产生警告也不产生错误。

向属性构造函数提供的作为第一个参数的字符串将显示为警告或错误的一部分。例如,当与前面的定义一起使用时,下面的代码将生成两个警告和一个错误:

 
// Generates 2 warnings:
A a = new A();
// Generate no errors or warnings:
B b = new B();
b.NewMethod();
// Generates an error, terminating compilation:
b.OldMethod();

为类 A 产生两个警告:一个用于声明类引用,一个用于类构造函数。

可在不使用参数的情况下使用 Obsolete 属性,但要包括此项已过时的原因及改用什么项的建议。

Obsolete 属性是一个单用途属性,并且可应用于允许属性的任何实体。Obsolete 是 ObsoleteAttribute 的别名。

转自:http://technet.microsoft.com/zh-cn/magazine/22kk2b44(VS.80).aspx

分享到:
评论

相关推荐

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。 -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。 -增加TabStrip中Tab...

    ExtAspNet_v2.3.2_dll

    -使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。 -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。 -增加TabStrip中Tab...

    VS_2008使用技巧手册.pdf

    - Obsolete属性可以标记过时的API或方法,并在编译时生成警告或错误。在VS_2008中,可以通过添加`[Obsolete]`属性来实现。 5. **设置编译前与编译后的生成步骤** - 编译前和编译后的生成步骤可以帮助自动化一些...

    Visual Studio .NET 使用技巧手册

    - **使用场景**: 当需要为类、方法、属性等添加描述性信息时。 **2. 在网页中加入注释** - **功能**: 在HTML或ASP.NET页面中添加注释。 - **使用场景**: 当需要在网页源代码中添加备注信息时。 **3. 使用跨项目...

    C#中使用Obsolete标志代码过期

    在C#编程语言中,`Obsolete` 是一个关键的特性,用于标记类、方法、属性或其他成员不再推荐使用,即将被淘汰或替换。这个特性向开发者发出警告,表明这些被标记的代码应该避免在新的开发中使用,或者计划在未来版本...

    obsolete:过时的属性抛出异常

    过时的将删除的属性标记为过时,以便在使用时抛出异常 用法: var obsolete = require('obsolete');var foo = {};obsolete(foo, 'bar');// throws exceptions 'obsolete property "bar" removed'foo.bar;foo.bar = 1...

    C#中的Obsolete特性(Attribute)

    试想一下,在代码中如何给调用者提示所调用的方法并不是优的,它可以被一个更好的方法所替代...  指定一个attribute,用方括号[]围起所期望的attribute,置于所要修饰的方法、接口、属性、委托、事件等语言元素之前。

    C#属性区别

    例如,`[DllImport]`特性用于指示一个方法是从外部DLL导入的,而`[Obsolete]`特性则用于标记不再推荐使用的代码元素,告知其他开发人员这些元素可能在未来的版本中被移除。 ### 属性与特性的区别 1. **功能定位**...

    属性使用的一些小例子

    C#提供了一些预定义的属性,如`Obsolete`用于标记不再推荐使用的代码,`DebuggerStepThrough`指示调试器应跳过方法,`Conditional`用于控制条件编译等。 5. **自定义属性的继承** 如果一个类继承了带有属性的类,...

    CSharp - Module 14_Attributes

    例如,`[Serializable]`属性用于指定一个类应该能够序列化,而`[Obsolete]`属性则用于标记已经过时的代码。 ### 定义自定义属性 除了使用预定义的属性之外,C#还支持定义自定义属性。自定义属性是通过继承`System....

    Roassal3Obsolete:Roassal3-http

    4. **动画**:Roassal3允许创建动态图形,通过时间序列改变图形属性,如位置、大小、颜色等,实现丰富的视觉效果。 5. **高性能**:Roassal3利用了Smalltalk的即时编译和内存管理机制,确保了良好的性能表现。 6. ...

    obsolete.rolodex:Rolodex for Open Peer

    联系信息标准化为属性。 与通过安排的服务通信(目前由于 kickq而被禁用) 联系人和服务状态缓存在。 通过共享注释架构轻松进行水平循环扩展(需要中央 redis)。 例子 cd example make install # Configure ...

    ScreenAdjuster-Obsolete:材质设计的应用程序可更改屏幕分辨率

    2. **DisplayMode类**: Java中的`java.awt.DisplayMode`类代表显示器的模式,包括宽度、高度、颜色深度和刷新率等属性。通过这个类,开发者可以获取当前显示器的设置,并设定新的分辨率。 3. **GraphicsDevice接口...

    obsolete-datagrid-how-to-reorder-rows-using-drag-and-drop-t152596:DevExtreme,DevExtreme(HTML JS),数据网格

    在实现DataGrid的拖放排序时,开发者可能需要利用HTML5的`draggable`属性和`ondragstart`、`ondragover`、`ondrop`等事件。 JavaScript是实现这些功能的核心语言,它提供了处理用户交互、DOM操作以及与服务器通信的...

    Csharp通览(进阶).pdf

    预定义特性如AttributeUsage定义了如何使用自定义特性类,Conditional特性用于标记条件方法,而Obsolete特性用于标识不再推荐使用的程序实体。通过特性,我们可以在运行时动态地获取或修改对象的状态或行为,这是...

    细说C#中的枚举:转换、标志和属性

    例如,`enum Color { [Obsolete("Use 'Red' instead")] OldRed = 1, Red = 1 }`,在这里`OldRed`被标记为过时并指向`Red`。 6. **枚举的最佳实践** - 枚举值的名称不应该包含枚举名称,以避免冗余和混淆。 - 枚举...

    Unity 文档 2018.3

    在这里,你可以找到Unity内置的类、方法、属性和枚举的详细信息。2018.3版本的更新可能包括新增的API、对现有API的改进以及性能优化。例如,可能会有关于Unity的新版 Job System 的文档,这是一个用于异步计算的强大...

    Attribute在.net编程中的应用(全).doc

    Attribute主要用于为.NET框架中的类型、字段、方法和属性等添加元数据信息。这些信息可以在运行时被访问,并且能够影响代码的行为。 #### 二、Attribute的概念及特点 ##### 1. Attribute是什么? Attribute是一种...

    C# 6.0 Cookbook

    10. **属性目标赋值**:允许你直接在属性或字段声明中赋值,如`[Obsolete("Use NewMethod instead")] void OldMethod() {}`。 这本书会详细解释这些特性的应用场景,并通过实例代码演示如何有效地利用它们。对于想...

    设计模式——基于 C#的工程化实现及扩展(部分章节)

    例如,可以使用`[Obsolete]`属性标记废弃的方法或属性。 ```csharp [Obsolete("This method is no longer recommended.")] public void OldMethod() { // ... } public void NewMethod() { // ... } ``` **...

Global site tag (gtag.js) - Google Analytics