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

Obsolete属性相关推荐

  1. C# Obsolete

    Obsolete 属性将某个程序实体标记为一个建议不再使用的实体.每次使用被标记为已过时的实体时,随后将生成警告或错误,这取决于属性是如何配置的.例如: 上面在Main函数中调用,只产生了一个警告的信 ...

  2. 区别C#中的两个属性(Property和Attribute)

    区别C#中的两个属性(Property和Attribute) 在C#中有两个属性,分别为Property和Attribute,两个的中文意思都有特性.属性之间,但是用法上却不一样,为了区别,本文暂把P ...

  3. Visual Studio中的《C# 语言规范》

    无意中的无意发现了个好东西--<C# 语言规范>,您不用到处下载,它就在您的Visual Studio安装目录中,例如:F:\Program Files\Microsoft Visual ...

  4. C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...

    本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...

  5. C#设置标记方法等为否决的不可用

       C#如何标记类里面的方法或者类为否决的,不可使用.在VS IDE编辑器中使用此方法或者类时会用绿色的波浪线标记这个语句,当移动鼠标到这句代码上时,会出现[否决的]方法名,警告"方法名称 ...

  6. 【 .NET Core 3.0 】框架之三 || swagger的使用

    一.为什么使用Swagger 上文中已经说到,单纯的项目接口在前后端开发人员使用是特别不舒服的,那所有要推荐一个,既方便又美观的接口文档说明框架,当当当,就是Swagger,随着互联网技术的发展,现在 ...

  7. 特性Attribute

    1.Attribute介绍    我们用VS进行编程时,智能提示再提供方法和属性列表的时候,有时会有下面的这种情况: 提示某个方法已经是过时的了,还会给与提示信息.出现此效果就是Attribute(特 ...

  8. .NET库和向后兼容的技巧——第2部分

    目录 源代码不兼容 名称冲突 常见的源代码不兼容 反射 接口和抽象类 隐式类型转换 接下来是什么? 这是.NET库和向后兼容系列技术的第二篇文章: 第1部分--简介和行为不兼容 第2部分--这篇文章 ...

  9. .NET库和向后兼容的技巧——第1部分

    目录 行为不相容 继承剧本 Obsolescence是你的朋友 沟通是关键 文档和未定义的行为 接下来是什么? 这篇博客文章将重点讨论.NET库中的行为不兼容问题. 因此,您编写了一个.NET库,并将 ...

  10. C#坏习惯:通过不好的例子学习如何制作好的代码——第5部分

    目录 介绍 定义和历史 我如何理解OCP? 我如何理解OCP? 3个级别 当代码关闭时 预测未来和YAGNI 让我们编码 不好的例子 更好的方法 SOLID恰当的结合在一起 更多例子 修改或扩展 什么 ...

最新文章

  1. 如何给邮件添加背景颜色
  2. 独立成分分析ICA系列5:信息极大化的 ICA 算法
  3. GitHub 上值得前端学习的数据结构与算法项目
  4. [转]jquery的一个模板引擎-zt
  5. 嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
  6. vue路由跳转报错解决
  7. 5.1.3 SELECT+INNER JOIN读取数据
  8. 抓取网络源码python_使用Python进行网络抓取的新手指南
  9. java image getscaledinstance_使用getImage()和getScaledInstance()调整java.awt.Image的异常大小...
  10. 什么是 PostgreSQL 横向子查询?
  11. VIM编辑器使用图解
  12. steam安裝位置linux,steam盒子
  13. python3 collections模块 tree_python3上的ete3模块无法导入TreeStyle、faces、AttrFace、NodeSty...
  14. HDU 6069 题解
  15. 浅析Python文件操作
  16. 《禅与摩托车维修艺术》
  17. 2009高考作文搞笑语录
  18. 第十周博文作业-小学生考试系统(1)
  19. 过来人经验!工作五年以上的UI设计师都在干什么?
  20. Freeline 的使用

热门文章

  1. 工业镜头与普通镜头有什么区别?
  2. 时间节点管理的自我反省
  3. golang php mysql性能_golang vs dlang vs nodejs vs php 性能对比较量
  4. 什么是数字孪生技术?
  5. VS2012工具箱控件
  6. python怎么测试一个网站的延迟_Python检测网络延迟的代码
  7. 网页打印怎样去掉网址
  8. 计算机usb显示不出来怎么办,U盘在电脑上显示不出来怎么办
  9. shopnc route.php,教你如何开启shopnc b2b2c 伪静态
  10. 【HDU4622】Reincarnation(SAM)