1樓:依嵐軟體
使用using語句最終生成的其實是一個try, finally**塊,在finally**塊裡釋放資源。要求是:為 using 語句提供的物件必須實現 idisposable 介面。
此介面提供了 dispose 方法,該方法將釋放此物件的資源。
你的問題其實可以這樣解釋:
在using中其實開啟了一個資料庫連線,然後從資料庫中讀取了某些資料,最後不管讀取是否成功,都應該把這個資料庫連線關閉掉。
傳統的寫法應該是在try塊裡開啟連線並且讀取,在finally塊中把連線關閉掉,而由於你的sdr物件實現了idisposable介面,所以c#允許你用using語句來代替這種寫法,其實這就是一種語法糖,一種簡便寫法而已。
當程式執行完這個**塊(超出大括號的範圍)後,sdr就會被自動關閉掉。
2樓:華華兮
就對於你上面這句話而言,因為資料庫open之後,最後一定要close,即在**最後寫conn.close();但是用了using語句後,當執行完using語句中的**,退出using語句時,close()方法會自動幫你執行,把資料庫連線關閉。方便了**的書寫和以免程式設計師忘記關掉資料庫連線。
3樓:匿名使用者
using 引入名稱空間或者使用非託管資源其中引入名稱空間通俗的說
就是我們程式中最頂部的**
如:using system;
樓主取的例子應該是使用非託管資源,
我們一般使用的是託管資源,不用後系統會自動釋放記憶體,而有些我們自己定義的非託管資源就需要我們手動的去釋放空間
4樓:匿名使用者
c# 程式設計師參考
using 語句請參見
c# 關鍵字 | using 指令 | 實現 finalize 和 dispose 以清理非託管資源
using 語句定義一個範圍,在此範圍的末尾將處理物件。
using (expression | type identifier = initializer) statement
其中:expression
希望在退出 using 語句時呼叫 dispose 的表示式。
type
identifier 的型別。
identifier
type 型別的名稱或識別符號。定義一個以上 type 型別的 identifier 是可以的。在每一個 identifier = initializer 的前邊都有一個逗號。
initializer
建立物件的表示式。
statement
嵌入的語句或要執行的語句。
備註在 using 語句中建立一個例項,確保退出 using 語句時在物件上呼叫 dispose。當到達 using 語句的末尾,或者如果在語句結束之前引發異常並且控制離開語句塊,都可以退出 using 語句。
例項化的物件必須實現 system.idisposable 介面。
5樓:匿名使用者
2樓找到資料對的,你要知道像檔案,資料庫連線這些是非託管資源.***不會自動去釋放他們,一般需要你手動關閉。當使用using時,如果物件實現了system.
idisposable介面,他就會在使用完釋放掉。
6樓:匿名使用者
相當於區域性變數,在{}的物件會自動釋放
不用呼叫相關的dispose()方法
c#中用using()是什麼概念啊。
7樓:匿名使用者
using 一個物件的話,這個物件必須繼承idispose介面
在離開{}
的時候,會呼叫該物件的dispose方法
8樓:匿名使用者
好吧,我簡單說,using一般有兩個用法,一個是引入名稱空間,第二個則是保證程式無論在什麼情況下都能正常退出!樓主的例子就是第二種,詳細用法0分我就不說了,自己去微軟看看吧,vs的幫助也可以!
9樓:匿名使用者
又是0分問這種基礎問題的,好像別人都像你一樣閒的沒事幹似地,因為自己的懶惰而浪費別人的時間,你好意思
msdn上寫的清清楚楚,問問題前先自己查下
10樓:巫素芹拜君
樓上的用.***吧,這個是說你的程式使用了系統的名稱空間,比如說你再家一個using
system.data說明使用了data子空間,在你編寫不同的程式的時候要使用到不同的空間。
c#using(){}是什麼意思
11樓:匿名使用者
表示執行完{}裡面的**之後會自動釋放括號內的**資源。
用於連線資料庫的多。。
這樣的話就可以不用寫**去關閉資料庫連線了。
12樓:匿名使用者
宣告變數作用域
完整的應該為using(類名 名 = 賦值){}相當於:
即可用於滿足 idispose介面的類 ,可以通過這種形式,即使錯誤時候,也能使 .dispose() 執行
13樓:匿名使用者
舉個例子你就知道了。
如果你在執行花括號裡面的內容時,發生了異常,那麼編譯器會幫助你釋放掉你的using語句中的資源。
using語句裡面的**也可以不用using(),但是發生異常的時候不會釋放該資源。
示例:using (sqlconnection conn=new sqlconnection())
c#讀寫檔案時using是什麼意思
14樓:叫什麼呢嫩
1、因為像 streamreader 、sqlconnection等非.***託管的範圍,沒辦法自己釋放資源,所以需要using進行手動資源釋放,如果超出了花括號的範圍,那資源就被釋放了
2、除了用using,也可以用try{}catch{} finally
3、如果不釋放資源的話 電腦長時間執行,就導致記憶體越來越小,最後機器就自動重啟了
15樓:匿名使用者
using是釋放記憶體的作用,寫不寫有很大的差別,當你讀取的資料量過多的時候,不釋放的話,會造成那些記憶體用不了,專業用語不會,總之就是那些記憶體沒法用,要是沒差別,微軟弄個using出來幹嘛
16樓:陽光的雷咩咩
就是用完了自動釋放記憶體,實際上不寫也沒什麼。
17樓:針白亦邱湘
有些物件在使用過程中,資源是不會自動釋放的,比較檔案流要關閉,資料庫連線要關閉,通常該物件提供的都有類似.close()的方法,但程式設計師往往會忘寫這句**
如果使用using(此處例項化需要釋放資源的物件)
c#中using和「引用」資料夾的作用有什麼區別? 10
18樓:go陌小潔
「引用」的目標是檔案,而using的目標是內容。
using 語句定義一個範圍,在此範圍的末尾將處理物件。
其主要功能是引入名稱空間,在引入名稱空間的當前**頁寫程式**時,可以免除長長的名稱空間。
另外,在程式**過中,使用using,可以在using結束時,**所有using段內的記憶體。
19樓:陽光的雷咩咩
using的名稱空間必須在引用裡面存在,是先引用dll後using的依賴關係。有時候你感覺不需要引用都可以using是因為vs的專案模板已經預設引用了某些dll,比如system.dll。
語句是什麼意思,C語言中 語句是什麼意思
語句拼音 y j 語句 釋義 一個語法上自成體系的單位,它由一個詞或句法上有關連的一組詞構成,表達一種主張 疑問 命令 願望或感嘆 付費內容限時免費檢視 回答你好,語法形式區別 詞,不可再拆分為更小的詞。短語,可以拆分為兩個或兩個以上的詞。又叫片語。句子,是一個操作單位,一個詞可以是一個句子,一個片...
c語言裡該語句什麼意思cabab
判斷a值是否大於b值,若a b,為真,則c a,若a不大於b,則c b c語言中,a b是什麼意思?按位異或,例如 include int main 輸出結果是8 1010 10 0010 2 1000 8 位運算 按位異或運算子 看運算子左右值的二進位制數字,一一對應,若相同 即 1 1或者0 0...
c語言裡的t是什麼意思C語言C是什麼意思
樓上寫錯了,應該是 轉義字元 而不是 轉移字元 轉義字元是一種特殊的字元常量。轉義字元以反斜線 開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱 轉義 字元。例如,在前面各例題printf函式的格式串中用到的 n 就是一個轉義字元,其意義是 回車換行 轉義字元主要用來表示...