天天看點

C# IDisposable接口與using關鍵字

1. 簡介

接口其實就是一種規範,一種标準,實作該接口的類要遵循該标準,是以就具備該接口标準要求的功能或特性。

C#中的IDisposable接口就是一種非常有用且非常常用的接口,該接口要求類實作Dispose()方法,在該方法中釋放占用的資源。如果在析構函數中釋放資源要等到垃圾回收時,太晚了。

但是手動調用Dispose方法稍微有點麻煩,而且也怕忘了調用,這樣資源也得不到及時釋放,是以可以使用using關鍵字,using關鍵字代碼塊的末尾會自動調用Dispose方法。

2. 示例

class Database:IDisposable
    {
        public void visitDatabase()
        {
            Console.WriteLine("開始通路資料庫");
        }
        public void Dispose()
        {
            Console.WriteLine("釋放資料庫連接配接資源");
        }
        //主函數,測試入口
        static void Main(string[] args)
        {
            //手工釋放
            Database db = new Database();
            db.visitDatabase();
            db.Dispose();
            //using關鍵字自動釋放
            using (Database db2 = new Database())
            {
                db2.visitDatabase();
            }
            //using關鍵字自動釋放
            Database db3 = null;
            using (db3 = new Database())
            {
                db3.visitDatabase();
            }
        }
    }
      
C# IDisposable接口與using關鍵字