網站首頁 編程語言 正文
這里記錄下C#中using關鍵字的使用方法。
Using的使用大致分別以下三種:
1 :using 指令(命名空間)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2 :using 語句
某些類型的非托管對象有數量限制或很耗費系統資源,在代碼使用完它們后,盡可能快的釋放它們時非常重要的。using語句有助于簡化該過程并確保這些資源被適當的處置(dispose)。
這里大致分為兩種形式。
(1 ):using (ResourceType Identifier = Expression )?Statement
Using表達式
圓括號中的代碼分配資源,Statement是使用資源的代碼
using語句會隱式產生處置該資源的代碼,其步驟為:
a:分配資源
b:把Statement放進try塊
c:創建資源的Dispose方法的調用,并把它放進finally塊
// using 語句
using (usings.factory fac = new usings.factory())
{
fac.CreateProduct();
}
(2 ):using (Expression)? Statement
Using對象
Expression?表示資源,Statement是使用資源,資源需要在using之前聲明
usings.factory facs = new usings.factory();
// using 對象
using (facs)
{
facs.CreateProduct();
}
Factory類:
namespace usings
{
public class factory : IDisposable
{
public void CreateProduct()
{
Console.WriteLine("創建了一個產品!");
}
public void Dispose()
{
Console.WriteLine("該對象銷毀~");
}
}
}
這里需要說我遇到的一個小問題,如圖所示:
解決方法很簡單,自定義的類繼承IDisposable類,實現其Dispose方法。
具體如我上邊的代碼所示。
3 :using 別名
用using為命名空間或類型定義別名,當引入的多個命名空間包含相同名字的類型時,需要使用該類型時,可以通過using為其指定別名,使代碼更加簡潔,避免沖突。
這里放上這次測試使用的全部代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// 別名
using afactory = usings.usingsaaa.factory;
using bfactory = usings.usingsbbb.factory;
namespace usings
{
class Program
{
static void Main(string[] args)
{
// using 語句
using (usings.factory fac = new usings.factory())
{
fac.CreateProduct();
}
Console.WriteLine("------------------------------------------");
usings.factory facs = new usings.factory();
// using 對象
using (facs)
{
facs.CreateProduct();
}
Console.WriteLine("------------------------------------------");
// 別名
afactory a = new afactory(); // 代替usingsaaa.factory
a.CreateProduct();
Console.WriteLine("------------------------------------------");
bfactory b = new bfactory(); // 代替usingsbbb.factory
b.CreateProduct();
Console.ReadKey();
}
}
namespace usingsaaa
{
public class factory
{
public void CreateProduct()
{
Console.WriteLine("aaa工廠創建了一個產品!");
}
}
}
namespace usingsbbb
{
public class factory
{
public void CreateProduct()
{
Console.WriteLine("bbb工廠創建了一個產品!");
}
}
}
namespace usings
{
public class factory : IDisposable
{
public void CreateProduct()
{
Console.WriteLine("創建了一個產品!");
}
public void Dispose()
{
Console.WriteLine("該對象銷毀~");
}
}
}
}
以上就是對using關鍵字的一些總結。
總結
原文鏈接:https://juejin.cn/post/7110889488628318245
相關推薦
- 2021-12-24 基于PostgreSQL/openGauss?的分布式數據庫解決方案_PostgreSQL
- 2022-06-07 Python中的引用和拷貝規律詳解_python
- 2022-12-09 Python命名空間與作用域深入全面詳解_python
- 2023-05-12 Oracle中實現刪除重復數據只保留一條_oracle
- 2022-07-10 Executor 線程池技術詳解
- 2023-07-14 elemment ui tabs實現思路
- 2022-10-01 React?hooks?useState異步問題及解決_React
- 2022-12-01 C/C++細數宏與函數有那些區別_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支