邯郸哪儿做网站便宜,wordpress gif,大数据营销平台有哪些,文件服务器怎么搭建using关键字有两个主要用途#xff1a; 作为指令#xff0c;为命名空间创建别名或导入其他命名空间中的类型。作为语句#xff0c;定义一个范围#xff0c;在此范围的末尾将释放对象。using指令 using指令有两个用途#xff1a; 导入其他命名空间中的类型#xff1a;usin…using关键字有两个主要用途 作为指令为命名空间创建别名或导入其他命名空间中的类型。作为语句定义一个范围在此范围的末尾将释放对象。using指令 using指令有两个用途 导入其他命名空间中的类型 using System.Text; 为命名空间或类型创建别名: using Project PC.MyCompany.Project; using指令的特点 using指令的作用范围限制为包含它的文件在其他文件中的using指令对现有文件无效。using别名用于方便讲标识符限定到命名空间或类型。using别名指令的右侧必须是一个完全限定类型。且与前面的using指令无关。using指令便于在命名空间中使用而类型而不必指定命名空间。using指令不提供对嵌套在指定命名空间中的任何命名空间的访问。示例1 下面的示例演示如何为命名空间定义和使用using别名 namespace PC
{// Define an alias for the nested namespace.using Project PC.MyCompany.Project;class A{void M(){// Use the aliasProject.MyClass mc new Project.MyClass();}}namespace MyCompany{namespace Project{public class MyClass { }}}
} using别名指令的右侧不能由开放的泛型类型。例如不能是ListT但可以为Listint创建别名。 示例2 下面演示如何为类定义using指令和using别名 using System;// Using alias directive for a class.
using AliasToMyClass NameSpace1.MyClass;// Using alias directive for a generic class.
using UsingAlias NameSpace2.MyClassint;namespace NameSpace1
{public class MyClass{public override string ToString(){return You are in NameSpace1.MyClass.;}}}namespace NameSpace2
{class MyClassT{public override string ToString(){return You are in NameSpace2.MyClass.;}}
}namespace NameSpace3
{// Using directive:using NameSpace1;// Using directive:using NameSpace2;class MainClass{static void Main(){AliasToMyClass instance1 new AliasToMyClass();Console.WriteLine(instance1);UsingAlias instance2 new UsingAlias();Console.WriteLine(instance2);}}
}
// Output:
// You are in NameSpace1.MyClass.
// You are in NameSpace2.MyClass. using语句 便于正确使用IDisposable对象。 示例 下面演示如何使用using语句。 using (Font font1 new Font(Arial, 10.0f))
{byte charset font1.GdiCharSet;
} File和Font是访问非托管资源的托管类型的示例。还有许多其他类型的非托管资源和对应封装这些资源的类库。所有这些类型都必须实现IDisposable接口。 当使用IDisposable对象时应该在using语句中声明和实例化此对象。using语句能自动调用对象的Dispose方法在调用Dispose时对象离开其作用域。在using块中对象时只读不能修饰也不能重新赋值。 using语句确保Dispose方法的调用即使发生了异常。也可以将对象放在try块中并在finally块中调用Dispose来达到同样的效果实际上编译器就是将using语句转换为这种形式。上面的代码在编译时会扩展为下面形式 {Font font1 new Font(Arial, 10.0f);try{byte charset font1.GdiCharSet;}finally{if (font1 ! null)((IDisposable)font1).Dispose();}
} 如下所示可以在using语句中声明一个类型的多个实例。 using (Font font3 new Font(Arial, 10.0f),font4 new Font(Arial, 10.0f))
{// Use font3 and font4.
} 也可以实例化资源对象之后将变量传递给using语句。不过这不是最佳做法。在这种情况下该对象在控制权离开using语句之后还可见但它可能不再具有对非托管资源的访问权如果尝试在using块外部使用该对象就可能引发异常。所以最好在using语句中实例化该对象并将其作用域限制在using块中。 Font font2 new Font(Arial, 10.0f);
using (font2) // not recommended
{// use font2
}
// font2 is still in scope
// but the method call throws an exception
float f font2.GetHeight(); 转载于:https://www.cnblogs.com/jiawei-whu/p/4343589.html