前言
關鍵字是編程語言預定的保留標識符,對編譯器有特殊意義。C#語言中的關鍵字有很多,用法各異。在我們的.cs源文件中,通常第一行都是以using這個關鍵字開始。本文就來介紹using的幾個用法。using System;
namespace Fountain.WinConsole.Demo
{
}
用法
using用法通常將其分為引入命名空間、引用命名空間使用別名和定義作用域。前二種稱using指令,而第三種稱為using語句。
using 指令
使用using指令引用命名空間,在使用命名空間中定義的類型時無需指定該類型的全名。使用using指令可添加 global(.NET 6 引入)、static (.NET Framework 4.6 引入)兩個修飾符進行修飾。global using:將應用于一個項目所有文件。static using :訪問類的靜態成員和嵌套類型,無需類名稱。
引入命名空間
1、using <命名空間的完整名稱>
// 三方庫引用
using MimeKit;
// .NET 庫引用
using System;
// 自建庫引用
using Fountain.Utility
2、global using <命名空間的完整名稱>
// GlobalUsing.cs
// .NET 庫引用
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Text;
// 三方日志庫引用
global using log4net;
// 自建庫引用
using Fountain.Utility
3、using static <命名空間的完整名稱>
using static System.Console;
using static System.Math;
注意:.NET Framework 4.6引入的新特性
4、global using static <命名空間的完整名稱>
// GlobalUsing.cs
// .NET 庫引用
global using System;
global using static System.Console;
global using static System.Math;
// 三方日志庫引用
global using log4net;
// 自建庫引用
using Fountain.Utility
命名空間使用別名
[global] using [static] <別名>=<命名空間的完整名稱>
// 自建庫引用
using Fountain=Fountain.Utility;
// .NET庫定義別名
using SText = System.Text;
定義使用別名,1、利于用自己熟悉的名稱;2、不同空間相同類型名,便于方法的簡潔使用。
using 語句
用于定義作用域,在作用域末尾將會釋放對象,類必須實現IDisposable接口。如果使用的類未實現IDisposable接口,則無法使用using語句。因為這種釋放通常是通過調用對象的Dispose方法實現。
定義作用域
using (SmtpClient smtpClient = new SmtpClient())
{
// 設置smtp的服務地址
smtpClient.Host = "smtp.qq.com";
//設置郵箱使用的端口,這里以QQ郵箱為例
smtpClient.Port = 587;
// 是否使用SSL
smtpClient.EnableSsl = true;
// 設置是否使用默認憑據
smtpClient.UseDefaultCredentials = true;
// userName-郵箱名稱;password-根據服務提供商不同而定如QQ郵箱、163 都是使用授權碼
// 授權碼獲取登錄網頁版的郵箱配置獲取
smtpClient.Credentials = new System.Net.NetworkCredential("testemail@qq.com", "******");
// 發出郵件的方法
smtpClient.DeliveryMethod = NMial.SmtpDeliveryMethod.Network;
// 郵件消息實例
NMial.MailMessage messageContent = new NMial.MailMessage();
// 發送
smtpClient.Send(messageContent);
}
示例
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
using System;
// MailKit.Net.Smtp 與 System.Net.Mail 有相同的類,所以使用定義別名
using NetMial=System.Net.Mail;
using System.Net.Mime;
using System.Text;
using static System.Console;
namespace Fountain.WinConsole.SendMailDemo
{
internal class Program
{
static void Main(string[] args)
{
try
{
// 使用了using 定義作用域
using (NetMial.SmtpClient smtpClient = new NetMial.SmtpClient())
// 如果未使用using定義別名入用,則需使用這種寫法
//using (System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient())
{
// 設置smtp的服務地址
smtpClient.Host = "smtp.qq.com";
//設置郵箱使用的端口,這里以QQ郵箱為例
smtpClient.Port = 587;
// 是否使用SSL
smtpClient.EnableSsl = true;
// 設置是否使用默認憑據
smtpClient.UseDefaultCredentials = true;
// userName-郵箱名稱;password-根據服務提供商不同而定如QQ郵箱、163 都是使用授權碼
// 授權碼獲取登錄網頁版的郵箱配置獲取
smtpClient.Credentials = new System.Net.NetworkCredential("testemail@qq.com", "******");
// 發出郵件的方法
smtpClient.DeliveryMethod = NetMial.SmtpDeliveryMethod.Network;
// 郵件消息實例
NetMial.MailMessage messageContent = new NetMial.MailMessage();
// 添加郵件接收地址,可以添加多個接收郵箱地址
messageContent.To.Add("testemail@163.com");
//設置發件人地址,發件人姓名,以及編碼
messageContent.From = new NetMial.MailAddress("testemail@qq.com", "Test", Encoding.UTF8);
messageContent.Subject = "test";
// 郵件標題編碼
messageContent.SubjectEncoding = System.Text.Encoding.UTF8;
// 郵件內容
messageContent.Body = "測試";
// 郵件內容的編碼
messageContent.BodyEncoding = System.Text.Encoding.UTF8;
// 設置郵件是否為HTML郵件
messageContent.IsBodyHtml = false;
// 設置郵件優先級
messageContent.Priority = NetMial.MailPriority.Normal;
// 發送
smtpClient.Send(messageContent);
}
// 由于使用了using static System.Console 可不用在靜態成員前加Console,
WriteLine("發送成功");
// 由于使用了using static System.Console 可不用在靜態成員前加Console,
ReadLine();
}
catch (Exception exception)
{
// 由于使用了using static System.Console 可不用在靜態成員前加Console,
WriteLine(exception.Message);
}
}
}
}
小結
以上是對關鍵字using幾種用法介紹,希望能加深大家對using的認識。
該文章在 2024/5/17 15:35:16 編輯過