0

是否有一种标准方法来确定为什么一个类被标记为过时(除了人类在谷歌中输入内容等)?如果您偶然发现有关某些内容已过时的警告,则显然需要了解下一点信息。

4

2 回答 2

2

ObsoleteAttribute有财产Message

获取解决方法消息,包括替代程序元素的描述。

当您使用过时的类型或成员时,此消息会出现在编译器警告消息中。例如(Message以粗体突出显示):

'System.IO.FileStream.FileStream(System.IntPtr, System.IO.FileAccess)' 已过时:'"此构造函数已被弃用。请改用 new FileStream(SafeFileHandle handle, FileAccess access) 。http://go. microsoft.com/fwlink/?linkid=14202 "'

不幸的是,我认为 .NET 通常不包含描述性很强的消息,因此如果您需要更多信息,尤其是为什么,最好咨询 MSDN 或 Google。

于 2013-04-03T15:00:47.467 回答
1

如果您偶然发现有关某些内容已过时的警告,则显然需要了解下一点信息。

是的,这就是该Message属性要传达的内容。

例如,请参阅Noda Time 中的此示例:

[Obsolete("Use FromMilliseconds instead. This method's name was a typo [...]")]
public static Period FromMillseconds(long milliseconds)

在使成员过时时,包含一条消息告诉人们他们应该如何避免过时的成员几乎总是一个好主意。

于 2013-04-03T15:01:33.747 回答