近来比较关注元数据。元数据在 NET 中发挥着举足轻重的作用,理解和掌握元数据还真不是一朝一夕的事,自己估计断断续续的要半年的时间才能入门。我现在暂时将它理解成这样:元数据是类和类元素的解释。
现在看看 ObsoleteAttribute 。
MSDN 说,“ _ 标记不再使用的程序元素。无法继承此类 _ ”。备注是如此解释,“ **_ ObsoleteAttribute _ ** _ _ _ 可适用于除程序集、模块、参数或返回值以外的所有程序元素。将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除 _ ”。
看了它的两个示例,自己写一个:
Public Class ComTax
1<obsolete(" ")="" 十月一日起必须修改税率值!="" 注意:=""> Protected _Rate As Double = 0.98
2
3Public ReadOnly Property Rate() As Double
4
5Get
6
7Return _Rate ' 在编辑代码时,光标移到这时会提示: “ _Rate ”已过时, " 注意: 十月一日起必须修改税率值! "
8
9End Get
10
11End Property
12
13End Class
14
15Public Class TestTax
16
17Shared Sub Main()
18
19Dim a As New ComTax
20
21Console.WriteLine(a.Rate)
22
23End Sub
24
25End Class
26
27这是在 IDE 编辑时的情形:
28
29
30
31当我们编译它的时候,编译通过,但提示警告信息:
32
33
34
35当把 <obsolete(" ")="" 十月一日起必须修改税率值!="" 注意:=""> 改为
36
37<obsolete(" ",true)="" 十月一日起必须修改税率值!="" 注意:=""> 时,编译失败。
38
39我原来想 ObsoleteAttribute 能否用来控制版本更新,到了十月一日时 _Rate 自动失效引发程序运行错误,但找不到实现的办法。估计 ObsoleteAttribute 只是用来控制版本代码,特别是在团队作业时,审核者对提交的代码进行批阅,如此函数需要斟酌,则 <obsolete(" ")="" 效率差,请在适当时间改进=""> ;严重时,则 <obsolete(" "),true="" 效率极差,请重新考虑=""> 。</obsolete("></obsolete("></obsolete("></obsolete("></obsolete(">