C# implicit和explicit关键字的用法 您所在的位置:网站首页 implicit和implicative C# implicit和explicit关键字的用法

C# implicit和explicit关键字的用法

#C# implicit和explicit关键字的用法| 来源: 网络整理| 查看: 265

1. 什么是“implicit”和“explicit”呢?

implicit:关键字是用来声明隐式的用户定义类型转换运算符。当然隐式转换可以通过不必要的类型转换来提高源代码的可读性。 explicit:关键字反之则用于显示转换用户自定义类型。

2. 用法: implicit的用法: 实现Food类和Noodle类之间的相互转换(写出Food和Noodle的实现,让下面的代码不会抛出空异常)

static void Main(string[] args){ Noodle noodle=(Food)null; noodle.Name="兰州拉面"; Console.WriteLine(noodle.Name); }

定义食物类

public class Food{ }

定义面条类

public class Noodle{ //食物名称 public string Name{get;set;} //将Food类隐式的转换为Noodle类 public static implicit operator Noodle(Food food){ return new Noodle(); } }

在这里插入图片描述 explicit的用法: 实现显式和隐式之间的相互转换,如下:

static void Main(string[] args){ Console.WriteLine("======隐式转换======"); ImplicitAndExplicit model=1.25; Console.WriteLine(model); Console.WriteLine("======显式转换======"); ImplicitAndExplicit new_model = (double)model; Console.WriteLine(new_model); }

定义一个ImplicitAndExplicit类

class ImplicitAndExplicit{ private int member1; private double member2; //无参构造函数 public ImplicitAndExplicit(){ this.member1=0; this.member2=0.0; } //有参构造函数 public ImplicitAndExplicit(double m){ double f; f=3.28*m; this.member1=(int)f; this.member2=12*(f-this.member1); } //由一个double隐式构造一个ImplicitAndExplicit类 public static implicit operator ImplicitAndExplicit(double m){ return new ImplicitAndExplicit(m); } //由一个ImplicitAndExplicit显式返回一个double public static explicit operator double(ImplicitAndExplicit m){ double f; f=m.member2/12+(double)m.member1; return (m/3.28); } //重写ToString方法 public override string ToString(){ return $"{member1}米和{member2}厘米"; } }

在这里插入图片描述 总结:不管是implicit还是explicit关键字,都必须用static和operator关键字进行修饰。语法如下:

public static implicit/explicit operator xxxxx(){ ...... }

以上代码全是本人用手打上去的,如果有错误请指出哈。再见。

不求与人相比,但求超越自己,要哭就哭出激动的泪水,要笑就笑出成长的性格!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有