DeprecatedAttributevs.ObsoleteAttribute

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

定义比较ObsoleteAttribute

[SerializableAttribute]

[AttributeUsageAttribute(AttributeTargets.Class

| AttributeTargets.Struct

| AttributeTargets.Enum

| AttributeTargets.Constructor

| AttributeTargets.Method

| AttributeTargets.PRoperty

| AttributeTargets.Field

| AttributeTargets.Event

| AttributeTargets.Interface

|AttributeTargets.Delegate,

Inherited=false)]

[ComVisibleAttribute(true)]publicsealedclassObsoleteAttribute : Attribute

 

ObsoleteAttribute is applicable to all program elements except assemblies, modules, parameters, and return values. Marking an element as obsolete informs users that the element will be removed in future versions of the product.

The ObsoleteAttribute class includes two properties:

Message. The string assigned to the Message property is emitted by the compiler when the attribute target is used in code. The string should note that the attribute target is obsolete and, if possible, provide some workaround or programmatic alternative.

IsError. This is a Boolean value that indicates to the compiler whether using the ObsoleteAttribute attribute should cause it to emit an error (IsError istrue) or a warning (IsError isfalse).

For more information about using attributes, see Extending Metadata Using Attributes.

 

DeprecatedAttribute 

publicsealedclassDeprecatedAttribute : Attribute

字面比较Deprecated: Express disapproval of.

Obsolete: No longer produced or used; out of date.

 

关于HTML中的这两个类比是有人这样解释的

It isrecommendedthat you don't use deprecated elements, because they will likely not be supported in the future, whereasobsoleteelements have already been discontinued from use.

 

MSDN解释Directly applying the Windows.Foundation.Metadata.DeprecatedAttribute attribute to managed code is not recommended, because this export occurs automatically.

When you create a Windows Metadata library (.winmd file), the ObsoleteAttribute is exported as both the ObsoleteAttribute attribute and theWindows.Foundation.Metadata.DeprecatedAttribute attribute if only the ObsoleteAttribute is present in source code. The ObsoleteAttribute is transformed to theDeprecatedAttributeas follows:

If themessageanderrorarguments are both present,messageis assigned to theDeprecatedAttributemessageargument. An error value oftruemaps to DeprecationType.Remove, and anerrorvalue offalsemaps to DeprecationType.Deprecate.

If themessageargument is not supplied in the ObsoleteAttribute, its default value in theDeprecatedAttributeis "element_nameis deprecated", whereelement_nameis the name of the target program element to which the attribute is applied.

If theerrorargument is not present in the ObsoleteAttribute, its default value in theDeprecatedAttributeis DeprecationType.Deprecate.

 

个人理解不同点:

他们属于不同的Framework:(DeprecatedAttribute 命名空间 是Windows.Foundation.Metadata而

ObsoleteAttribute的命名空间是System)

 

DeprecatedAttribute 是在window8.x 后才开始支持的。

ObsoleteAttribute在.netfraemwork 1.1中引入

 

 

参考DeprecatedAttribute

ObsoleteAttribute

Obsolete vs. Deprecated HTML

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航