如果遇到自定义显式(强制)类型转换的代码,不要慌张,因为C#是可以这样的。
首先来看下面这段伪代码:
类名 对象名 = new 类名();
int 变量名 = (int)对象名;
可以从在上面伪代码看出,这里是把一个自定义的 class 类型转换成 int 类型,这样做没问题,前提是这样做前有类型转换重载,如下图所示:
上图中代码如下:
public class C
{
int value = 0;
public static explicit operator int(C obj)
{
return C.value;
}
}
那么,效果如何呢?强制类型转换重载后,效果如下图所示:
上图中代码如下:
void main(string[] age)
{
C obj = new C()
int value = (int)obj;
}
从上面代码中可以看出,在强制类型转换重载后,就可以通过 “数据类型 变量名 = (数据类型)对象名” 的方式转换数据类型。
待补充。