你可能没有玩过的:C#显式(强制)类型转换重载

如果遇到自定义显式(强制)类型转换的代码,不要慌张,因为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;
}

从上面代码中可以看出,在强制类型转换重载后,就可以通过 “数据类型 变量名 = (数据类型)对象名” 的方式转换数据类型。

待补充。

参与评论 您还未登录,请先 登录 后发表或查看评论
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页

打赏作者

m0_46419510

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值