c裡的USING語句是什麼意思,c 中用using()是什麼概念啊。

2021-03-27 22:41:15 字數 3830 閱讀 9816

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 就是一個轉義字元,其意義是 回車換行 轉義字元主要用來表示...