溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

自定義類型強(qiáng)制裝換

發(fā)布時(shí)間:2020-07-19 02:22:09 來源:網(wǎng)絡(luò) 閱讀:212 作者:1473348968 欄目:編程語言

----------------------------------------------------------------------Currency.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
    //類和結(jié)構(gòu)相似
    public struct Currency
    {
        private uint dollars; //元
        private ushort cents; //分
        public Currency(uint i, ushort s)//初始化構(gòu)造函數(shù)
        {
            this.dollars = i;
            this.cents = s;
        }
        public override string ToString()
        {
            return string.Format("{0}.{1,2:00}", dollars, cents);
        }
        //看情況選擇是顯示裝換還是隱式轉(zhuǎn)換,(uint和ushort都可以隱式轉(zhuǎn)換為float)
        //重載運(yùn)算符必須使用public static 
        //implicit 隱式轉(zhuǎn)換
        //把Currency對(duì)象隱式轉(zhuǎn)換為float類型
        public static implicit operator float(Currency c)
        {
            return c.dollars + c.cents / 100.0f;
        }
        //explicit為顯式轉(zhuǎn)換
        //把float對(duì)象顯式轉(zhuǎn)換為Currency類型
        public static explicit operator Currency(float f)
        {
            checked//溢出則拋出異常
            {
                uint i = (uint)f;
                ushort s = Convert.ToUInt16((f - i) * 100);
                return new Currency(i, s);
            }
        }
    }
}

----------------------------------------------------------------------主程序

 Currency c = new Currency(50, 35);
            float f = (float)(c);
            c = (Currency)f;
            Console.WriteLine(c.ToString());
            Console.ReadKey();

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI