c#

位置:IT落伍者 >> c# >> 浏览文章

c#中的using和as操作符的详细讲解


发布日期:2022年04月12日
 
c#中的using和as操作符的详细讲解

个操作符在小处非常有用

using

using 语句定义一个范围在此范围的末尾将处理对象

举例

class TestUsing:IDisposable

{

public void Dispose()

{

ConsoleWriteLine(Dispose);

}

public void Method()

{

ConsoleWriteLine(Do a method);

}

}

调用这个类

using(TestUsing tu=new TestUsing())

{

tuMethod();

}

可以看到先后输出了Do a method和Dispose

备注实例化的对象必须实现 SystemIDisposable 接口

as

as 运算符用于执行可兼容类型之间的转换

as 运算符类似于类型转换所不同的是当转换失败时as 运算符将产生空而不是引发异常在形式上这种形式的表达式

expression as type

等效于

expression is type ? (type)expression : (type)null 只是 expression 只被计算一次

请注意as 运算符只执行引用转换和装箱转换as 运算符无法执行其他转换如用户定义的转换这类转换应使用 cast 表达式来代替其执行

举例

object [] arr=new object[];

arr[]=;

arr[]=test;

foreach(object o in arr)

{

string s=(string)o;

ConsoleWriteLine(s);

}

这样的代码在转换类型失败的时候引发异常代码修改成

object [] arr=new object[];

arr[]=;

arr[]=test;

for(int i=;i<arrLength;i++)

{

string s=arr[i] as string;

if(s!=null)ConsoleWriteLine(i+:+s);

}

可以看到输出了:test虽然arr[]处转换失败但是没有引发异常而是返回了null

备注as必须和引用类型一起使用(int等值类型不能使用)

               

上一篇:在.NET环境下将报表数据导出Excel和Word[1]

下一篇:C#的私有成员的一个有趣的现象