implicit explicit测试

来源:互联网 发布:mac怎么创建文件夹 编辑:程序博客网 时间:2024/05/29 17:58

 struct Currency
    {
        public uint Dollars;
        public ushort Cents;

        public Currency(uint Dollars, ushort Cents)
        {
            this.Dollars = Dollars;
            this.Cents = Cents;
        }

        public override string ToString()
        {
            return string.Format("${0}.{1,-2:00}f", this.Dollars, this.Cents);
        }

        public static implicit operator float(Currency value)
        {
            return value.Dollars + value.Cents / 100.0f;
        }

        public static explicit operator Currency(float value)
        {
            uint dollars = (uint)value;
            ushort cents = (ushort)((value - dollars) * 100);
           
            return new Currency(dollars, cents);
        }
    }
//例:

           float amount = 45.63f;
            Currency amout2 = (Currency)amount;

            Console.WriteLine(amout2.ToString());


            List<Currency> cc = new List<Currency>();

            cc.Select(x => { return new { A = x, B = x }; });

            Console.WriteLine(EMP.MMMVVV);

 

原创粉丝点击