最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#標準idispose模式使用示例

 更新時間:2014年02月21日 10:24:19   作者:  
下面將把C#里實現(xiàn)IDispose模式的代碼展現(xiàn)出來,大家一起來學習一下,它的使用場合也很多的,當我們手動對網(wǎng)站,數(shù)據(jù)庫作封裝時,都會用的到

IDispose模式在C++中用的很多,用來清理資源,而在C#里,資源分為托管和非托管兩種,托管資源是由C#的CLR幫助我們清理的,它是通過調(diào)用對象的析構(gòu)函數(shù)完成的對象釋放工作,而對于非托管系統(tǒng)來說,則需要我們自己來釋放,例如數(shù)據(jù)庫連接對象,這就需要我們手動去調(diào)用它的Dispose()方法來實現(xiàn)對象它的釋放,事實上,Dispose()內(nèi)容到底做了什么事,我們并不清楚,當然這就是面向?qū)ο螅幌M汴P(guān)系實現(xiàn)的細節(jié),呵!

對于我們開發(fā)人員來說,在了解它怎么用之后,總會對它如何實現(xiàn)的產(chǎn)生興趣,下面,我將把C#里實現(xiàn)IDispose模式的代碼展現(xiàn)出來,大家一起來學習一下,事實上,它的使用場合也很多的,當我們手動對網(wǎng)站,數(shù)據(jù)庫作封裝時,都會用的到,下面看一下代碼:

復制代碼 代碼如下:

/// <summary>
    /// 實現(xiàn)IDisposable,對非托管系統(tǒng)進行資源回收
    /// </summary>
    public class IDisplosePattern : IDisposable
    {
        public void Dispose()
        {
            this.Dispose(true);////釋放托管資源
            GC.SuppressFinalize(this);//請求系統(tǒng)不要調(diào)用指定對象的終結(jié)器. //該方法在對象頭中設置一個位,系統(tǒng)在調(diào)用終結(jié)器時將檢查這個位
        }

        protected virtual void Dispose(bool disposing)
        {
            if (!_isDisposed)//_isDisposed為false表示沒有進行手動dispose
            {
                if (disposing)
                {
                    //清理托管資源
                }
                //清理非托管資源
            }
            _isDisposed = true;
        }

        private bool _isDisposed;

        ~IDisplosePattern()
        {
            this.Dispose(false);//釋放非托管資源,托管資源由終極器自己完成了
        }
    }

通過上面的代碼,我們知道了,對于托管系統(tǒng)(C#的CLR為我們管理的),直接通過~IDisplosePattern()方法進行釋放,而~IDisplosePattern()這個方法何時被調(diào)用,我們是不知道的,因為它是由CLR幫助我們調(diào)用的,而我們手動進行dispose方法時,它會調(diào)用dispose(true)這個重載方法,它會幫助我們清理托管和非托管資源。

相關(guān)文章

  • 在winform中實現(xiàn)雙向數(shù)據(jù)綁定的方法

    在winform中實現(xiàn)雙向數(shù)據(jù)綁定的方法

    雙向數(shù)據(jù)綁定是一種允許我們創(chuàng)建持久連接的技術(shù),使模型數(shù)據(jù)和用戶界面(UI)之間的交互能夠自動同步,今天我想通過winform中DataGridView控件為例,介紹在winform中如何實現(xiàn)雙向數(shù)據(jù)綁定,需要的朋友可以參考下
    2024-03-03
  • C#驗證身份證號碼正確性的實例代碼(收藏)

    C#驗證身份證號碼正確性的實例代碼(收藏)

    這篇文章主要介紹了C#驗證身份證號碼正確性的實例代碼,包括18位號碼和15位號碼的校驗,需要的朋友可以參考下
    2017-07-07
  • C#使用WMI獲取硬盤參數(shù)的實現(xiàn)方法

    C#使用WMI獲取硬盤參數(shù)的實現(xiàn)方法

    因為需求需要涉及獲取硬盤的SN參數(shù),但是又不想要獲取到U盤或移動硬盤設備的SN,所以就淺淺的研究了一下,本文給大家介紹了C#使用WMI獲取硬盤參數(shù)的實現(xiàn)方法,需要的朋友可以參考下
    2024-06-06
  • Unity3D基于UGUI實現(xiàn)虛擬搖桿

    Unity3D基于UGUI實現(xiàn)虛擬搖桿

    這篇文章主要為大家詳細介紹了Unity3D基于UGUI實現(xiàn)虛擬搖桿,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c# 實現(xiàn)模糊PID控制算法

    c# 實現(xiàn)模糊PID控制算法

    這篇文章主要介紹了c# 實現(xiàn)模糊PID控制算法的示例代碼,幫助大家更好的理解和使用c#編程語言,感興趣的朋友可以了解下
    2020-12-12
  • C#給picturebox控件加圖片選中狀態(tài)的2個方法

    C#給picturebox控件加圖片選中狀態(tài)的2個方法

    C#給picturebox控件加圖片選中狀態(tài)的2個方法,需要的朋友可以參考一下
    2013-03-03
  • 如何利用現(xiàn)代化C#語法簡化代碼

    如何利用現(xiàn)代化C#語法簡化代碼

    這篇文章主要給大家介紹了關(guān)于如何利用現(xiàn)代化C#語法簡化代碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • C#中如何自定義配置上周和本周起始日來查詢業(yè)務數(shù)據(jù)(思路詳解)

    C#中如何自定義配置上周和本周起始日來查詢業(yè)務數(shù)據(jù)(思路詳解)

    在C#中并沒有封裝的方法根據(jù)我們需要來直接獲取上一周某天到某天、本周某天到某天,所以需要我們自己封裝方法來實現(xiàn)(我們也可以按照這個思路使用其他語言來實現(xiàn)),感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • C# 委托(跨窗體操作控件)實例流程講解

    C# 委托(跨窗體操作控件)實例流程講解

    今天研究了一下,在C#里面卻是可以不用自定義消息這么復雜的方法來實現(xiàn)跨窗體調(diào)用控件,C#有更好的辦法就是委托。
    2013-03-03
  • .NET/C#實現(xiàn)識別用戶訪問設備的方法

    .NET/C#實現(xiàn)識別用戶訪問設備的方法

    這篇文章主要介紹了.NET/C#實現(xiàn)識別用戶訪問設備的方法,結(jié)合實例形式分析了C#識別用戶訪問設備的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-02-02

最新評論

定南县| 奉化市| 鄂伦春自治旗| 祁门县| 墨玉县| 台安县| 綦江县| 景宁| 共和县| 林甸县| 南陵县| 比如县| 广宁县| 济南市| 乌拉特后旗| 金堂县| 宁乡县| 增城市| 濉溪县| 台安县| 白河县| 濮阳县| 建瓯市| 洮南市| 大理市| 濉溪县| 富蕴县| 旺苍县| 扎兰屯市| 陆良县| 吉水县| 舒城县| 庆安县| 墨脱县| 封丘县| 定远县| 梓潼县| 邮箱| 漳平市| 瑞丽市| 新营市|