在C#中obsolete表示什么?

这个预定义特性标记了不应被使用的程序实体。它可以让您通知编译器丢弃某个特定的目标元素。例如,当一个新方法被用在一个类中,但是您仍然想要保持类中的旧方法,您可以通过显示一个应该使用新方法,而不是旧方法的消息,来把它标记为 obsolete(过时的)。

规定该特性的语法如下:

[Obsolete(
   message
)]
[Obsolete(
   message,
   iserror
)]
  • 参数 message,是一个字符串,描述项目为什么过时的原因以及该替代使用什么。

  • 参数 iserror,是一个布尔值。如果该值为 true,编译器应把该项目的使用当作一个错误。默认值是 false(编译器生成一个警告)。

例如:

[System.Obsolete("use class B")]
class A
{
public void Method() { }
}
class B
{
[System.Obsolete("use NewMethod", true)]
public void OldMethod() { }
public void NewMethod() { }
}

在此例中,Obsolete 属性应用于类 A 和方法 B.OldMethod。因为应用于 B.OldMethod 的属性构造函数的第二个参数设置为 true,所以此方法将导致编译器错误,而使用类 A 只会产生警告。但是,调用 B.NewMethod 既不产生警告也不产生错误。

向属性构造函数提供的作为第一个参数的字符串将显示为警告或错误的一部分。例如,当将它与前面的定义一起使用时,下面的代码将生成两个警告和一个错误:

// Generates 2 warnings:
A a = new A();
// Generate no errors or warnings:
B b = new B();
b.NewMethod();
// Generates an error, terminating compilation:
b.OldMethod();


为类 A 产生两个警告:一个用于声明类引用,一个用于类构造函数。

可在不使用参数的情况下使用 Obsolete 属性,但要包括此项已过时的原因及改用什么项的建议。

Obsolete 属性是一个单用途属性,并且可应用于允许属性的任何实体。Obsolete 是 ObsoleteAttribute 的别名。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值