前言
关键字是编程语言预定的保留标识符,对编译器有特殊意义。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 编辑过