欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#用戶(hù)定義類(lèi)型轉(zhuǎn)換詳解

 更新時(shí)間:2014年01月16日 09:09:27   作者:  
用于自定義類(lèi)和結(jié)構(gòu)能夠進(jìn)行隱式轉(zhuǎn)換和顯示轉(zhuǎn)換.例如:將一個(gè)自定義類(lèi)類(lèi)型轉(zhuǎn)換成整型,浮點(diǎn)型等,反之亦然

C#用戶(hù)定義類(lèi)型轉(zhuǎn)換

•用于自定義類(lèi)和結(jié)構(gòu)能夠進(jìn)行隱式轉(zhuǎn)換和顯示轉(zhuǎn)換.例如:將一個(gè)自定義類(lèi)類(lèi)型轉(zhuǎn)換成整型,浮點(diǎn)型等,反之亦然.

C#提供隱式轉(zhuǎn)換和顯式轉(zhuǎn)換

•隱式轉(zhuǎn)換:編譯器自動(dòng)執(zhí)行轉(zhuǎn)換
•顯式轉(zhuǎn)換:編譯器只在使用顯式轉(zhuǎn)換運(yùn)算符時(shí)才執(zhí)行轉(zhuǎn)換
聲明隱式轉(zhuǎn)換的語(yǔ)法如下.注:所有用戶(hù)定義轉(zhuǎn)換必須使用public和static修飾符

復(fù)制代碼 代碼如下:

public static implicit operator TargetType(SourceType Identifier)
{
       ...
      return ObjectOfTargetType;
}

TargetType:目標(biāo)類(lèi)型

參數(shù)Identitfier:源數(shù)據(jù)

例如,下面代碼使一個(gè)int字面量被隱式轉(zhuǎn)換為L(zhǎng)imitedInt對(duì)象,反過(guò)來(lái)LimitedInt也可以隱式轉(zhuǎn)換成一個(gè)int

復(fù)制代碼 代碼如下:

class LimitedInt
    {
        const int MaxValue = 100;
        const int MinValue = 0;

        private int _theValue = 0;
        //屬性
        public int TheValue
        {
            get { return _theValue; }
            set
            {
                if (value < MinValue)
                {
                    _theValue = 0;
                }
                else
                {
                    _theValue = value > MaxValue ? MaxValue : value;
                }
            }
        }

        //隱式轉(zhuǎn)換:將LimitedInt對(duì)象轉(zhuǎn)為整型
        public static implicit operator int(LimitedInt li)
        {
            return li.TheValue;
        }

        //隱式轉(zhuǎn)換:將整型轉(zhuǎn)換為L(zhǎng)imitedInt對(duì)象
        public static implicit operator LimitedInt(int x)
        {
            LimitedInt li = new LimitedInt();
            li.TheValue = x;
            return li;
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            LimitedInt li = 500; //將500轉(zhuǎn)換為L(zhǎng)imitedInt

            int value = li;  //將LimitedInt轉(zhuǎn)換為int

            Console.WriteLine("li:{0},value:{1}", li.TheValue, value);

            Console.ReadKey();
        }


改代碼輸出結(jié)果:li:100,value:100

顯示轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換運(yùn)算符

前面所講的都是隱式轉(zhuǎn)換,如果你把運(yùn)算符implcit改為explicit,你將不得不在實(shí)行轉(zhuǎn)換時(shí)顯示使用轉(zhuǎn)換運(yùn)算符

代碼片段如下:

復(fù)制代碼 代碼如下:

//顯示轉(zhuǎn)換:將LimitedInt對(duì)象轉(zhuǎn)為整型
        public static explicit operator int(LimitedInt li)
        {
            return li.TheValue;
        }

        //顯示轉(zhuǎn)換:將整型轉(zhuǎn)換為L(zhǎng)imitedInt對(duì)象
        public static explicit operator LimitedInt(int x)
        {
            LimitedInt li = new LimitedInt();
            li.TheValue = x;
            return li;
        }

        static void Main(string[] args)
        {
            LimitedInt li = (LimitedInt)500; //將500強(qiáng)制轉(zhuǎn)換為L(zhǎng)imitedInt

            int value = (int)li;  //將LimitedInt強(qiáng)制轉(zhuǎn)換為int

            Console.WriteLine("li:{0},value:{1}", li.TheValue, value);

            Console.ReadKey();
        }

相關(guān)文章

  • C# PictureBox圖片控件實(shí)現(xiàn)圖片交換

    C# PictureBox圖片控件實(shí)現(xiàn)圖片交換

    在c#中可以使用PictureBox控件來(lái)呈現(xiàn)圖像,本文主要介紹了C# PictureBox實(shí)現(xiàn)圖片交換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • c#實(shí)現(xiàn)md5加密示例

    c#實(shí)現(xiàn)md5加密示例

    這篇文章主要介紹了md5加密,加密結(jié)果可以為32位、48位、64位,只要修改一下參數(shù)就可以實(shí)現(xiàn)
    2014-01-01
  • C#利用ZXing.Net生成條形碼和二維碼

    C#利用ZXing.Net生成條形碼和二維碼

    這篇文章主要為大家詳細(xì)介紹了C#利用ZXing.Net生成條形碼和二維碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Unity Shader實(shí)現(xiàn)黑幕過(guò)場(chǎng)效果

    Unity Shader實(shí)現(xiàn)黑幕過(guò)場(chǎng)效果

    這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)黑幕過(guò)場(chǎng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • c#委托學(xué)習(xí)示例分享

    c#委托學(xué)習(xí)示例分享

    委托是一個(gè)類(lèi),它定義了方法的類(lèi)型,使得可以將方法當(dāng)作另一個(gè)方法的參數(shù)來(lái)進(jìn)行傳遞,這種將方法動(dòng)態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語(yǔ)句,同時(shí)使得程序具有更好的可擴(kuò)展性,下面是c#委托示例
    2014-03-03
  • Unity圖形學(xué)之ShaderLab入門(mén)基礎(chǔ)

    Unity圖形學(xué)之ShaderLab入門(mén)基礎(chǔ)

    Unity中所有Shader文件都通過(guò)一種陳述性語(yǔ)言進(jìn)行描述,稱(chēng)為“ShaderLab”, 這篇文章主要介紹了Unity圖形學(xué)之ShaderLab入門(mén)基礎(chǔ),需要的朋友可以參考下
    2022-01-01
  • Unity實(shí)現(xiàn)菜品識(shí)別的示例代碼

    Unity實(shí)現(xiàn)菜品識(shí)別的示例代碼

    這篇文章主要介紹了如何通過(guò)Unity實(shí)現(xiàn)菜品識(shí)別,可以準(zhǔn)確識(shí)別圖片中的菜品名稱(chēng)、位置、卡路里信息,并獲取百科信息。感興趣的小伙伴可以了解一下
    2022-02-02
  • C#折半插入排序算法實(shí)現(xiàn)方法

    C#折半插入排序算法實(shí)現(xiàn)方法

    這篇文章主要介紹了C#折半插入排序算法實(shí)現(xiàn)方法,實(shí)例分析了C#排序的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#設(shè)計(jì)模式之Facade外觀模式解決天河城購(gòu)物問(wèn)題示例

    C#設(shè)計(jì)模式之Facade外觀模式解決天河城購(gòu)物問(wèn)題示例

    這篇文章主要介紹了C#設(shè)計(jì)模式之Facade外觀模式解決天河城購(gòu)物問(wèn)題,簡(jiǎn)單描述了外觀模式的定義并結(jié)合具體實(shí)例分析了外觀模式解決購(gòu)物問(wèn)題的相關(guān)步驟與操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#中的DataTable查詢(xún)實(shí)戰(zhàn)教程

    C#中的DataTable查詢(xún)實(shí)戰(zhàn)教程

    這篇文章主要介紹了C#中的DataTable查詢(xún)實(shí)戰(zhàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01

最新評(píng)論