C#中Obsolete
类别:编程学习 浏览量:321
时间:2014-12-5 C#中Obsolete
C#中Obsolete一、Obsolete在C#中的应用
在使用.Net Frameworkd进行开发时,经常可以在方法的智能提示ToolTip上面看到一个方法是【否决的】,如图:
或者在警告里面:
甚至使用【否决的】方法的时候还会造成编译错误:
上面的这些或许大家在日常的开发过程中或多或少的都碰到过。
二、为什么要使用Obsolete否决一个方法?
1、该方法效率不够高
2、容易造成内存泄漏
3、兼容性不好
4、可维护性低
三、C#中Obsolete如何使用
[Obsolete("This class is obsolete; use class B instead")]
class A
{
[Obsolete("This function is obsolete", true)]
public void F() {}
}
class B
{
public void F() {}
}
class Test
{
static void Main() {
A a = new A(); // Warning
a.F(); // Error
}
}
上面实例中:
当声明A类对象时,得到警告信息 "This class is obsolete; use class B instead."
当使用A类对象的F()方法时,得到错误信息 "This function is obsolete." ( Obsolete 第二个参数为true )
又如
在Main函数中调用,只产生了一个警告的信息
如果将MyObsolete类中的GetName方法属性设置中的false改为true,编译时直接报错提示
标签:Attribute
热门推荐
- 腾讯云轻量应用服务器与VPS服务器、虚拟主机有什么区别?(腾讯云轻量应用服务器与VPS服务器、虚拟主机有什么区别?)
- cssgrid普及情况(5分钟教你学会 CSS Grid 布局)
- mysql怎么迁移数据(如何把本地mysql迁移到服务器数据库)
- mysql获取当前日期时间(MySQL DATEDIFF函数获取两个日期的时间间隔的方法)
- laravel线上如何调试(解决Laravel 不能创建 migration 的问题)
- ASP.NET中XML与DataSet的相互转换
- jquery中filter
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- laravel在中间件内生成参数并且传递到控制器中的2种姿势(laravel在中间件内生成参数并且传递到控制器中的2种姿势)
- js中encodeURIComponent与C#中HttpUtility.UrlEncode