c# 接口 IDisposable
2017-07-14 00:00
197 查看
using,实现了IDisposable接口的对象可以使用using进行资源声明,出了using的作用域以后自动调用Dispose方法。
Dispose和Close的区别:实现了IDisposable接口必须定义dispose方法,但不一定有close方法很多dispose的实现都是调用close方法,dqlConnection close以后还能重新open,但是dispose以后就不能再用。
close不一定有,比如bird这个类就没有。close就像门一样被关了,可以从新打开,但是dispose后路都给你炸了,你必须从新建。
系统定义的接口都是I开头的。
这个接口里面定义了三个东西,
这个是一个属性,一个只读属性。
这个肯定是移动下一个数据,这个返回值是什么意思呢?就是判断有没有下一个数据。
只要有这两个方法就能对一堆数据进行遍历了。
所以调用这个能进行遍历了。
Dispose和Close的区别:实现了IDisposable接口必须定义dispose方法,但不一定有close方法很多dispose的实现都是调用close方法,dqlConnection close以后还能重新open,但是dispose以后就不能再用。
static void Main(string[] args) { //实现了IDisposable的接口的类可以使用using 进行资源管理。 using (bird b = new bird()) { b.fly(); b.walk(); } Console.WriteLine("////////////////////"); using (bird b2 = new bird()) ; } public interface flyable { void fly(); } public interface runable { void walk(); } class bird : flyable, runable,IDisposable { public void Dispose() { Console.WriteLine("啊,摔了"); } public void fly() { Console.WriteLine("我能飞"); } public void walk() { Console.WriteLine("能蹦跶"); } }
close不一定有,比如bird这个类就没有。close就像门一样被关了,可以从新打开,但是dispose后路都给你炸了,你必须从新建。
foreach:实现了IEnumerable接口的对象都可以使用foreach进行遍历。
using System.Runtime.InteropServices; namespace System.Collections { // // 摘要: // 支持对非泛型集合的简单迭代。 [ComVisible(true)] [Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")] public interface IEnumerator { // // 摘要: // 获取集合中的当前元素。 // // 返回结果: // 集合中的当前元素。 object Current { get; } // // 摘要: // 将枚举数推进到集合的下一个元素。 // // 返回结果: // 如果枚举数成功地推进到下一个元素,则为 true;如果枚举数越过集合的结尾,则为 false。 // // 异常: // T:System.InvalidOperationException: // 在创建了枚举数后集合被修改了。 bool MoveNext(); // // 摘要: // 将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。 // // 异常: // T:System.InvalidOperationException: // 在创建了枚举数后集合被修改了。 void Reset(); } }
系统定义的接口都是I开头的。
这个接口里面定义了三个东西,
object Current { get; }
这个是一个属性,一个只读属性。
bool MoveNext();
这个肯定是移动下一个数据,这个返回值是什么意思呢?就是判断有没有下一个数据。
只要有这两个方法就能对一堆数据进行遍历了。
所以调用这个能进行遍历了。
相关文章推荐
- C#正确实现IDisposable接口
- 利用C#实现IDisposable接口是一种标准的途径
- c# 中使用构构函数与IDisposable接口双重释放资源
- C# 中正确实现 IDisposable 接口
- c#之如何正确地实现IDisposable接口
- C#中对IDisposable接口的理解
- C#中using以及实现接口IDisposable的使用方法
- C#中IDisposable接口实现
- 【转】C# 的 IDisposable 接口
- C#资源回收和IDisposable接口的使用
- C#正确实现IDisposable接口
- 【转】C#中对IDisposable接口的理解
- 编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable
- C# IDisposable接口与using关键字
- 全面剖析C#接口编程之覆盖虚接口
- C#中接口多重继承的注意事项
- C#中接口(interface)的理解--接口概念的理解
- 全面剖析C#接口编程之对接口成员的访问
- 基于C#的接口基础教程--转载自ASP酷
- C#中虛函數,抽象,接口的簡單説明