USING用法
(1)引用名稱空間
using作為引入名稱空間指令的用法規則為:
using Namespace;
在.NET程式中,最常見的程式碼莫過於在程式檔案的開頭引入System名稱空間,其原因在於System名稱空間中封裝了很多最基本最常用的操作,下面的程式碼對我們來說最為熟悉不過:
using System;
這樣,我們在程式中就可以直接使用名稱空間中的型別,而不必指定詳細的型別名稱。using指令可以訪問巢狀名稱空間。
關於:名稱空間
名稱空間是.NET程式在邏輯上的組織結構,而並非實際的物理結構,是一種避免類名衝突的方法,用於將不同的資料型別組合劃分的方式。例如,在.NET中很多的基本型別都位於System名稱空間,資料操作型別位於System.Data名稱空間,
(2)建立名稱空間別名
using為名稱空間建立別名的用法規則為:
using alias = namespace | type;
其中namespace表示建立名稱空間的別名;而type表示建立型別別名。例如,在.NET Office應用中,常常會引入Microsoft.Office.Interop.Word.dll程式集,在引入名稱空間時為了避免繁瑣的型別輸入,我們通常為其建立別名如下:
using MSWord = Microsoft.Office.Interop.Word;
這樣,就可以在程式中以MSWord來代替Microsoft.Office.Interop.Word字首,如果要建立Application物件,則可以是這樣,
而且還有一個好處就是,在一個.CS檔案中引入了不同的名稱空間但是相同的類名的時候,用別名就可以解決這問題了。
(3)強制資源清理
用途:清理非託管資源,不受GC控制的資源。Using結束後會隱式的呼叫Disposable方法。
用法:
using (Class1 c = new Class1())
{
}//清理非託管不受GC控制的資源
但是當物件使用using關鍵字的時候,必須實現IDisposable介面。其實using的使用和try-catch-finaly中,在finaly程式碼域呼叫Disposable方法效果一樣。注意Using不能使用多個不同的類
Class1 f = new Class1();
try
{ //執行程式碼
}
catch()
{
//異常處理
}
finally
{
f.Disposable();
}
using 語句獲取一個或多個資源,執行一個語句,然後處置該資源。
using 語句:
using ( 資源獲取 ) 嵌入語句
資源獲取:
區域性變數宣告
表示式
資源是實現 System.IDisposable 的類或結構,它包含名為 Dispose 的單個無引數方法。(如:截圖2)正在使用資源的程式碼可以呼叫 Dispose 以指示不再需要該資源。如果不呼叫 Dispose,則最終將因為垃圾回收而發生自動處置。
如果資源獲取的形式是區域性變數宣告,那麼此區域性變數宣告的型別必須為System.IDisposable 或是可以隱式轉換為 System.IDisposable 的型別。如果資源獲取的形式是表示式,那麼此表示式必須是 System.IDisposable 或是可以隱式轉換為 System.IDisposable 的型別。
在資源獲取中宣告的區域性變數必須是隻讀的,且必須包含一個初始值設定項。
using 語句被翻譯成三個部分:獲取、使用和處置。資源的使用隱式封閉在包含一個 finally 子句的 try語句中。此 finally 子句處置資源。如果獲取了 null 資源,則不進行對 Dispose 的呼叫,也不引發任何異常。
例如,下列形式的 using 語句
using (R r1 = new R()) {
r1.F();
}
完全等效於
R r1 = new R();
try {
r1.F();
}
finally {
if (r1 != null) ((IDisposable)r1).Dispose();
}
using確保執行IDisposable介面的物件在退出塊時立即釋放,主要是為了防止忘記關閉資料庫連線可能導致的.net可執行程式的各種問題。
using的用法
相關文章
- cdMysql?using?用法示例詳解MySql
- MySQL 索引優化 Using where, Using filesortMySql索引優化
- MySQL explain結果Extra中"Using Index"與"Using where; Using index"區別MySqlAIIndex
- String interpolation using $
- Using hints for PostgresqlSQL
- Using mysqldump for backupsMySql
- MySQL 之 USINGMySql
- MGTSC 212 using ExcelExcel
- Dictionary application using SwingAPP
- pdf crop using pythonPython
- What are the benefits of using an proxy?
- Video Division with using OpenCvIDEOpenCV
- 淺談Using filesort和Using temporary 為什麼這麼慢
- ARS Reinforcement Learning using Gymnasium
- Using MATLAB with CANoe 快讀Matlab
- Qdrant用法;Qdrant在langchain裡的用法LangChain
- [Javascript] Using IIFE to improve code performanceJavaScriptORM
- fribidi not found using pkg-config
- LeetCode | 232 Implement Queue Using StacksLeetCode
- recover database using backup controlfile理解Database
- Mysql using使用詳解ZCSFMySql
- Dog robot MPC Cotroller using Pybullet
- Building OpenNI using a cross-compilerUIROSCompile
- 【Using English】28 - Security with HTTPS and SSLHTTP
- tie的用法
- volatile的用法
- SQL AS 的用法SQL
- confirm的用法
- SUBMIT 的用法MIT
- contentProvider的用法IDE
- openssl的用法
- indexOf()的用法Index
- Pythonyield的用法Python
- Promise的用法Promise
- errno的用法
- RDD用法與例項(五):glom的用法
- 消除Warning: Using a password on the command line interface can be insecure的提示
- How to develop locally a Laravel app using LaragondevLaravelAPPGo