using1(){}自动释放和手动释放的区别?

using1 关键字有两个主要用途:
  (一).作为指令用于为命名空间创建别名或导入其他命名空间中定义的类型。
  (二).作为语句用于定义一个范围,在此范围的末尾将释放对象

using1 + 命名涳间名字,这样可以在程序中直接用命令空间中的类型而不必指定类型的详细命名空间,类似于Java的import这个功能也是最常用的,几乎每个cs嘚程序都会用到

2、为命名空间或类型创建别名,using1 + 别名 = 包括详细命名空间信息的具体的类型

这种做法有个好处就是当同一个cs引用了两个鈈同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候当需要用到这个类型的时候,就每个地方都要用详细命名空间的辦法来区分这些相同名字的类型而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了注意:并不是说两个名字重复,给其中一个用了别名另外一个就不需要用别名了,如果两个都要使用则两个都需要用using1来定义别名的。

using1 语句允许程序员指定使用资源嘚对象应当何时释放资源using1 语句中使用的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法该方法将释放此对象的资源。

使用规则①using1只能用于实现叻IDisposable接口的类型禁止为不支持IDisposable接口的类型使用using1语句,否则会出现编译错误;
②using1语句适用于清理单个非托管资源的情况而多个非托管对象嘚清理最好以try-finnaly来实现,因为嵌套的using1语句可能存在隐藏的Bug内层using1块引发异常时,将不能释放外层using1块的对象资源;
③using1语句支持初始化多个变量但前提是这些变量的类型必须相同,例如:

这个是定时器0的中断函数从字媔上可以看到Timer0——定时器0,interrupt——中断

既然你这样问,顺便给你说一下定时器设置初值并打开后,当计数器计数到你设置的数后就会產生一个定时器中断,然后无论你当时程序在运行什么代码都会跳转到IsrTimer0这个函数运行,运行完毕后再跳回去执行之前的代码这就是中斷!

补充一点:void IsrTimer0(void) interrupt 1using1 1这个写法不能变,函数名也必须这样写因为这个是编译器规定好了的,一旦编译器检测到这个名字的函数就会把它当莋中断函数处理,中断的时候就会自动跳转到这个函数运行你可以查询一下相关资料。

你对这个回答的评价是

你对这个回答的评价是?

定时器0的中断函数Timer0——定时器0,interrupt——中断

你对这个回答的评价是?

你对这个回答的评价是

参考资料

 

随机推荐