科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道不易注意的.net中using的几种用途

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文总结了.net中using的三种用途,主要是:1、引用命名空间,减少冗余代码;2、即时释放资源;3、创建命名空间的别名(using 别名)。

作者:中国IT实验室 来源:中国IT实验室 2007年9月9日

关键字: using 用途

  • 评论
  • 分享微博
  • 分享邮件

今天一个朋友问我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;

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
        邮件订阅

        如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

        重磅专题
        往期文章
        最新文章