不易注意的.net中using的几种用途

本文详细介绍了C#中using关键字的三种主要用途:1. 引用命名空间以减少代码冗余;2. 即时释放资源,确保不受托管资源正确关闭;3. 创建命名空间的别名,提高代码的可读性和易用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天一个朋友问我using有几种用途,我的第一反应就是茴香豆的4种写法,第2反应是肯定又是个面试题。

先前就知道using可以这样用:

1、引用命名空间,减少冗余代码

Using System.Web.UI.WebControls;

2、即时释放资源

Using (TestObject a = new TestObject()) {

// 使用对象

}

//对象资源被释放

不是说有3条吗?立马查了一下sdk

***********************************************

sdk里是这么说的:

using 指令有两个用途:

◆创建命名空间的别名(using 别名)

◆允许在命名空间中使用类型,例如,不必限定该命名空间中的类型使用(using 指令)。

using [alias = ]class_or_namespace;

其中:

alias(可选)

希望表示命名空间的用户定义符号。之后,您就可以使用 alias 表示命名空间名。

class_or_namespace

希望使用或为其提供别名的命名空间名,或希望为其提供别名的类名。

备注

创建using 别名以便更易于将标识符限定到命名空间或类。

创建using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对可能嵌套在指定命名空间中的任何命名空间的访问。

命名空间

命名空间分为两类:用户定义的命名空间和系统定义的命名空间。

用户定义的命名空间是在代码中定义的命名空间。有关系统定义的命名空间的列表,请参见 .NET Framework 文档。

有关其他程序集中的引用方法的示例,请参见创建和使用 C# DLL。

示例

下面的示例显示了如何为命名空间定义和使用 using 别名:

// cs_using_directive.cs

using MyAlias = MyCompany.Proj.Nested; // define an alias to represent a namespace

namespace MyCompany.Proj

{

public class MyClass

{

public static void DoNothing()

{

}

}

namespace Nested // a nested namespace

{

public class ClassInNestedNameSpace

{

public static void SayHello()

{

System.Console.WriteLine("Hello");

}

}

}

}

public class UnNestedClass

{

public static void Main()

{

MyAlias.ClassInNestedNameSpace.SayHello(); // using alias

}

}

输出  Hello

示例

下面的示例显示了如何为类定义using 指令和 using 别名:

// cs_using_directive2.cs

using System; // using directive

using AliasToMyClass = NameSpace1.MyClass; // using alias for a class

namespace NameSpace1

{

public class MyClass

{

public override string ToString()

{

return "You are in NameSpace1.MyClass";

}

}

}

namespace NameSpace2

{

class MyClass

{

}

}

namespace NameSpace3

{

using NameSpace1; // using directive

using NameSpace2; // using directive

class Test

{

public static void Main()

{

AliasToMyClass somevar = new AliasToMyClass();

Console.WriteLine(somevar);

}

}

}

输出

You are in NameSpace1.MyClass

*********************************************

所以再加上一条:

3、创建命名空间的别名(using 别名)

using MyAlias = MyCompany.Proj.Nested;

查看本文来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值