implicit和explicit

implicit:自定义类型隐式转换。

explict:自定义类型强制转换。

 class Program
    {
        static void Main(string[] args)
        {
            Currency currency = new Currency(10, 50);
            float f = currency;
            int intValue = (int)currency;
            Console.WriteLine(currency.ToString());
            Console.Read();
        }
    }
    struct Currency
    {
        private uint Dollars;
        private ushort Cents;
        public Currency(uint dollars, ushort cents)
        {
            Dollars = dollars;
            Cents = cents;
        }

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

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

        public static explicit operator int(Currency value)
        {
            return (int)value.Dollars;
        }

 

posted @ 2015-05-08 15:11  江境纣州  阅读(61)  评论(0编辑  收藏  举报