Thinking:元数据?ObsoleteAttribute用来控制版本代码的吗?

来源:岁月联盟 编辑:zhu 时间:2005-05-13

近来比较关注元数据。元数据在NET中发挥着举足轻重的作用,理解和掌握元数据还真不是一朝一夕的事,自己估计断断续续的要半年的时间才能入门。我现在暂时将它理解成这样:元数据是类和类元素的解释。 
 
现在看看ObsoleteAttribute。

MSDN说,“标记不再使用的程序元素。无法继承此类”。备注是如此解释,“ObsoleteAttribute 可适用于除程序集、模块、参数或返回值以外的所有程序元素。将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除”。 
 
看了它的两个示例,自己写一个:
 
Public Class ComTax

    <Obsolete("注意:十月一日起必须修改税率值!")> Protected _Rate As Double = 0.98

    Public ReadOnly Property Rate() As Double

        Get

            Return _Rate '在编辑代码时,光标移到这时会提示: “_Rate”已过时,"注意:十月一日起必须修改税率值!"

        End Get

    End Property

End Class 
 
Public Class TestTax

    Shared Sub

Main()

        Dim a As New ComTax

        Console.WriteLine(a.Rate)

    End Sub

End Class
这是在IDE编辑时的情形:
当我们编译它的时候,编译通过,但提示警告信息:当把<Obsolete("注意:十月一日起必须修改税率值!")>改为

<Obsolete("注意:十月一日起必须修改税率值!",True)>时,编译失败。 
 
我原来想ObsoleteAttribute能否用来控制版本更新,到了十月一日时_Rate自动失效引发程序运行错误,但找不到实现的办法。估计ObsoleteAttribute只是用来控制版本代码,特别是在团队作业时,审核者对提交的代码进行批阅,如此函数需要斟酌,则<Obsolete("效率差,请在适当时间改进")>;严重时,则<Obsolete("效率极差,请重新考虑"),True>。