C#转换关键字

implicit为隐式的转换

explicit为显示的转换

通过这种方法可以有效地验证数据, 对参数进行处理。 不管是否实用, 在此先记录下来 以后回顾用


class 转换关键字
    {
        class MyAge
        {
            private Int32 age = 0;

            public Int32 Age
            {
                get { return age; }
                set { age = value; }
            }

            public MyAge()
            {
                
            }

            private MyAge(Int32 age)
            {
                this.age = age;
            }

            //整型到MyAge 的隐式转换
            public static implicit operator MyAge(Int32 year)
            {
                return new MyAge(year>1980?(year-1980):-1);
            }

            //MyAge 到整型的显式转换
            public static explicit operator Int32(MyAge age)
            {
                if (age == null)
                {
                    throw new ArgumentNullException("参数为空。");
                }

                if ((age.Age < 0) || (age.Age > 150))
                {
                    throw new InvalidCastException("不可能的年龄值。");
                }

                return age.Age;
            }

            //MyAge 到String类型的隐式转换  个人理解 隐式转换就是自动转换
            public static implicit operator String(MyAge age)
            {
                return "我的年龄是" + age.Age.ToString();
            }
        }
        static void Main(string[] args)
        {
            MyAge age=new MyAge();
            //执行显示类型转换: MyAge转换为Int32
            Int32 bornAge = (Int32) age;
            //执行隐式类型转换: Int32转换为MyAge
            age = DateTime.Now.Year;
            //执行隐式转换: MyAge转换为string
            Console.WriteLine(age);
            Console.ReadKey();
        }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值