C#面试题

当前位置: 面试问题网 > C#面试题 > explicit和implicit的含义

explicit和implicit的含义

explicit 和 implicit 属于转换运算符,如用这两者可以让我们自定义的类型支持相互交换
   explicti 表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A)
   implicit 表示隐式转换,如从 B -> A 只需直接赋值(A = B)
   隐式转换可以让我们的代码看上去更漂亮、更简洁易懂,所以最好多使用 implicit 运算符。不过!如果对象本身在转换时会损失一些信息(如精度),那么我们只能使用 explicit 运算符,以便在编译期就能警告客户调用端
   示例:
   using System;
   using System.Collections.Generic;
   using System.Text;
   namespace Example23
   {
   class Program
   {
   //本例灵感来源于大话西游经典台词“神仙?妖怪?”–主要是我实在想不出什么好例子了
   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 + “:妖怪想当神仙?再去修炼五百年!”);
   }
   }
   static void Main(string[] args)
   {
   Immortal tmpImmortal = new Immortal(“紫霞仙子”);
   //隐式转换
   Monster tmpObj1 = tmpImmortal;
   Console.WriteLine(tmpObj1.name);
   Monster tmpMonster = new Monster(“孙悟空”);
   //显式转换
   Immortal tmpObj2 = (Immortal)tmpMonster;
   Console.WriteLine(tmpObj2.name);
   Console.ReadLine();
   }
   }
   }
   结果:
   紫霞仙子:神仙变妖怪?偷偷下凡即可。。。
   孙悟空:妖怪想当神仙?再去修炼五百年!

【explicit和implicit的含义】相关文章

1. explicit和implicit的含义

2. Struts&Spring&Hibernate面试总结

3. 软件测试LoadRunner面试题:Explain the following functions: – lr_debug_message

4. 软件测试LoadRunner面试题:Explain the Configuration of your systems

5. 软件测试LoadRunner面试题:What is correlation? Explain the difference between automatic correlation and manu

6. 如何找出EMP表里面SALARY第N高的employee

7. spring中的BeanFactory与ApplicationContext的作用和区别

8. Spring中ApplicationContext的作用是什么

9. HSRP的含义以及如何工作

10. JDO的含义

本文来源:https://www.mianshiwenti.com/a13047.html

点击展开全部

《explicit和implicit的含义》

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面

﹝explicit和implicit的含义﹞相关内容

「explicit和implicit的含义」相关专题

其它栏目

也许您还喜欢