溫馨提示×

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

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

C#中explicti和implicit的作用是什么

發(fā)布時(shí)間:2021-07-07 17:16:32 來(lái)源:億速云 閱讀:112 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了C#中explicti和implicit的作用是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

C# explicti和implicit的含義

◆C# explicti和implicit屬于轉(zhuǎn)換運(yùn)算符,如用這兩者可以讓我們自定義的類型支持相互交換

◆explicti表示顯式轉(zhuǎn)換,如從 A -> B 必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換(B = (B)A)

◆implicit 表示隱式轉(zhuǎn)換,如從 B -> A 只需直接賦值(A = B)

隱式轉(zhuǎn)換可以讓我們的代碼看上去更漂亮、更簡(jiǎn)潔易懂,所以***多使用implicit運(yùn)算符。不過(guò)!如果對(duì)象本身在轉(zhuǎn)換時(shí)會(huì)損失一些信息(如精度),那么我們只能使用 explicti運(yùn)算符,以便在編譯期就能警告客戶調(diào)用端。

示例:

using System;  using System.Collections.Generic;  using System.Text;     namespace Example23  {  class Program  {  //本例靈感來(lái)源于大話西游經(jīng)典臺(tái)詞“神仙?妖怪?”--主要是我實(shí)在想不出什么好例子了  class Immortal  {  public string name;  public Immortal(string Name)  {  name = Name;  }  public static implicit operator Monster(Immortal value)  {  return new Monster(value.name + ":神仙變妖怪?偷偷下凡即可。。。");  }  }  class Monster  {  public string name;  public Monster(string Name)  {  name = Name;  }  public static explicit operator Immortal(Monster value)  {  return new Immortal(value.name + ":妖怪想當(dāng)神仙?再去修煉五百年!");  }  }  static void Main(string[] args)  {  Immortal tmpImmortal = new Immortal("紫霞仙子");  //隱式轉(zhuǎn)換  Monster tmpObj1 = tmpImmortal;  Console.WriteLine(tmpObj1.name);     Monster tmpMonster = new Monster("孫悟空");  //顯式轉(zhuǎn)換  Immortal tmpObj2 = (Immortal)tmpMonster;  Console.WriteLine(tmpObj2.name);     Console.ReadLine();  }  }  }

上述內(nèi)容就是C#中explicti和implicit的作用是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI