您好,登錄后才能下訂單哦!
本篇文章為大家展示了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è)資訊頻道。
免責(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)容。