首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

为什么用as进行类型转换被那么推崇?该如何解决

2012-04-16 
为什么用as进行类型转换被那么推崇?看了许多C#的书,都说用as运行符进行类型转换有多好,但我觉得catch也挺

为什么用as进行类型转换被那么推崇?
看了许多C#的书,都说用as运行符进行类型转换有多好,但我觉得catch也挺好的啊。以下两种方式到底谁好,好在哪呢?

// as的方式
Cow myCow = myAnimal as Cow;
if (myCow != null)
{
  myCow.Milk();
}
else
{
  Console.WriteLine("类型转换错误");
}

// try-catch的方式
try
{
  Cow myCow = myAnimal as Cow;
  myCow.Milk();
}
catch (Exception e)
{
  Console.WriteLine("类型转换错误");
}

[解决办法]
首先,ls的说法是错误的。try catch根本不会“抛出异常”。

as 操作没有办法转换值类型。
因为 as 在转换失败的时候返回 null,值类型不能是 null。

关于 as 和强制类型转换更多的比较,推荐你看C#高效编程这本书。我想说的在这本书中都有。


[解决办法]

探讨

首先,ls的说法是错误的。try catch根本不会“抛出异常”。

as 操作没有办法转换值类型。
因为 as 在转换失败的时候返回 null,值类型不能是 null。

关于 as 和强制类型转换更多的比较,推荐你看C#高效编程这本书。我想说的在这本书中都有。

热点排行