日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java idisposable_在C#中实现IDisposable [重复]

發布時間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java idisposable_在C#中实现IDisposable [重复] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個問題在這里已有答案:

我試圖在示例程序中實現IDisposable . 如果我在using block語句中使用SqlConnection類,它將自動處理它 .

public int testCon()

{

using (SqlConnection conn = new SqlConnection("Conn string"))

{

using (SqlCommand cmd = conn.CreateCommand())

{

conn.Open();

cmd.CommandText = "SELECT COUNT(1) FROM Carsd";

return (int)cmd.ExecuteScalar();

}

}

}

我創建了一個類并實現了IDisposable . 我在using block語句中創建了一個新實例 .

class Program

{

static void Main(string[] args)

{

testDispose objTestDispose;

using (objTestDispose = new testDispose())

{

objTestDispose.UserName = "testUser";

objTestDispose.PassWord = "testPassword";

}

Console.WriteLine("Check obj of testDispose Class" + objTestDispose.UserName);

Console.WriteLine("Check obj of testDispose Class" + objTestDispose.PassWord);

Console.ReadLine();

}

}

public class testDispose : IDisposable

{

public string UserName { get; set; }

public string PassWord { get; set; }

public void Dispose()

{ }

}

我相信,使用block自動調用dispose方法 . 因此,如果我在使用塊中創建一個新實例,它將在現有的使用塊之后進行配置 . 但是,我仍然能夠在使用block.WHY之外訪問objTestDispose對象?

請建議 .

UDPATE

Mr.BWA ..謝謝你讓我的問題重復 . 但你應該知道我是一名學生并且正在學習 . 我腦子里有這個問題,所以我在這里問過 . **您不能僅為非托管資源說IDisposable接口 . **我也可以刪除托管資源 . 這取決于實際情況 . 按照以下link -

如果您的對象已將250MB System.Drawing.Bitmap(即.NET托管的Bitmap類)分配為某種幀緩沖區,該怎么辦?當然,這是一個托管的.NET對象,垃圾收集器將釋放它 . 但是你真的想留下250MB的內存 - 等待垃圾收集器最終出現并釋放它嗎?如果有一個開放的數據庫連接怎么辦?當然,我們不希望該連接處于打開狀態,等待GC完成對象 . 如果用戶調用了Dispose()(意味著他們不再計劃使用該對象),為什么不擺脫那些浪費的位圖和數據庫連接?所以現在我們將:擺脫非托管資源(因為我們必須),并擺脫托管資源(因為我們希望有所幫助)

總結

以上是生活随笔為你收集整理的java idisposable_在C#中实现IDisposable [重复]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。