程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> DeprecatedAttribute vs. ObsoleteAttribute,

DeprecatedAttribute vs. ObsoleteAttribute,

編輯:C#入門知識

DeprecatedAttribute vs. ObsoleteAttribute,


定義比較

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)]
public sealed class ObsoleteAttribute : 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 is true) or a warning (IsError is false).

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

 

DeprecatedAttribute

 

public sealed class DeprecatedAttribute : Attribute

字面比較

Deprecated: Express disapproval of.

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

 

關於HTML中的這兩個類比是有人這樣解釋的

  

It is recommended that you don't use deprecated elements, because they will likely not be supported in the future, whereas obsolete elements 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 the DeprecatedAttribute as follows:

  • If the message and error arguments are both present, message is assigned to the DeprecatedAttributemessage argument. An error value oftrue maps to DeprecationType.Remove, and an error value of false maps to DeprecationType.Deprecate.

  • If the message argument is not supplied in the ObsoleteAttribute, its default value in the DeprecatedAttribute is "element_name is deprecated", where element_name is the name of the target program element to which the attribute is applied.

  • If the error argument is not present in the ObsoleteAttribute, its default value in the DeprecatedAttribute is DeprecationType.Deprecate.

 

個人理解

不同點:

他們屬於不同的Framework:(DeprecatedAttribute 命名空間 是Windows.Foundation.Metadata而

ObsoleteAttribute的命名空間是System

 

DeprecatedAttribute 是在window8.x 後才開始支持的。

ObsoleteAttribute在.netfraemwork 1.1中引入

 

 

參考

DeprecatedAttribute

ObsoleteAttribute

Obsolete vs. Deprecated HTML

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved