你的位置:首页 > 软件开发 > ASP.net > 编写高质量代码改善C#程序的157个建议——建议3: 区别对待强制转型与as和is

编写高质量代码改善C#程序的157个建议——建议3: 区别对待强制转型与as和is

发布时间:2015-08-12 17:00:09
建议3: 区别对待强制转型与as和is在阐述本建议之前,首先需要明确什么是强制转型,以及强制转型意味着什么。从语法结构上来看,类似下面的代码就是强制转型。secondType = (SecondType)firstType; 但是,强制转型可能意味着两件不同的事情:1 ...

建议3: 区别对待强制转型与as和is

在阐述本建议之前,首先需要明确什么是强制转型,以及强制转型意味着什么。从语法结构上来看,类似下面的代码就是强制转型。

secondType = (SecondType)firstType; 

但是,强制转型可能意味着两件不同的事情:

1)FirstType和SecondType彼此依靠转换操作符来完成两个类型之间的转型。

2)FirstType是SecondType的基类。

类型之间如果存在强制转型,那么它们之间的关系,要么是第一种,要么是第二种,不能同时既是继承的关系,又提供了转型符。

首先看第一种情况,当FirstType和SecondType存在转换操作符时的代码如下:

  class FirstType   {     public get='_blank'>string Name { get; set; }   }      class SecondType   {     public string Name { get; set; }     public static explicit operator SecondType(FirstType firstType)     {       SecondType secondType = new SecondType() { Name = "转型自:" + firstType.Name };       return secondType;     }   } 

原标题:编写高质量代码改善C#程序的157个建议——建议3: 区别对待强制转型与as和is

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录