implicit关键字和explicit关键字
explicit
关键字
explicit
关键字的作用是强制转换用户自定义的显式类型转换运算符。通常前面通用static
后面用operator
,一般是把当前类型转换为另一个类型(将原类型转换为目标类型)。
举个例子:
class A
{public A(float f){p = f;Console.WriteLine("p of A is " + p.ToString());}public float p { get; private set; }public static explicit operator B(A a){return new B(a.p * 2);}
}
class B
{public B(float f){p = f;Console.WriteLine("p of B is " + p.ToString());}public float p { get; private set; }public static explicit operator A(B b){return new A(b.p * 10f);}
}
调用方式如下:
A a = new A(10);
B b = (B)a;
控制台输出如下:
p of A is 10
p of B is 20
implicit
关键字
implicit
关键字和explicit
关键字类似,它实现自定义类型的隐式类型转换。
还是上面的例子:
class A
{public A(float f){p = f;Console.WriteLine("p of A is " + p.ToString());}public float p { get; private set; }public static implicit operator B(A a){return new B(a.p * 2);}
}
class B
{public B(float f){p = f;Console.WriteLine("p of B is " + p.ToString());}public float p { get; private set; }public static implicit operator A(B b){return new A(b.p * 10f);}
}
调用方式如下:
A a = new A(10);
B b = a;
控制台输出如下:
p of A is 10
p of B is 20
Tips
注意的是A类到B类的”显式“和”隐式“ 转换只能定义一个,不能同时定义两个。
转载于:https://www.cnblogs.com/lsy1991/p/10309166.html
implicit关键字和explicit关键字相关推荐
- C++ - explicit关键字
C++ - explicit关键字 最近在阅读android底层源码的时候,发现其中好多代码使用了explicit关键字,因此这里对explicit关键字进行了分析和介绍. 文章目录 C++ - ex ...
- 【C++】explicit关键字
explicit的优点是可以避免不合时宜的类型变换,缺点无.所以google约定所有单参数的构造函数都必须是显式的** explicit关键字只需用于类内的单参数构造函数前面.由于无参数的构造函数和多 ...
- C++中的explicit关键字介绍
C++中的关键字explicit主要是用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换.类构造函数默认情况下声明为隐式的即implicit. 隐式转 ...
- C++ explicit关键字详解(转载)
转载:https://www.cnblogs.com/ymy124/p/3632634.html 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函 ...
- explicit关键字详解(C++ )
一:首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造 ...
- C++之explicit关键字使用总结
1.explicit关键字介绍 C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 关键字是implicit, 意思是隐藏的,类构 ...
- 深入理解C++中的explicit关键字
深入理解C++中的explicit关键字 kezunhai@gmail.com http://blog.csdn.net/kezunhai C++中的explicit关键字只能用于修饰只有一个参数的构 ...
- C++:explicit关键字
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数 ...
- VC++工作笔记0003---C++中的explicit关键字
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 个人理解: 这个的作用,其实就是,防止隐式转换,因为如果有隐式转换的话,那么用起来,感觉就怪怪的, ...
- C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数 ...
最新文章
- TensorFlow创建DeepDream网络
- 2021年第十六届智能车竞赛线上决赛之前大家的提问
- 跟着老王学python
- 在国企当程序员是什么体验?
- SQL Server中表锁定的原理及解锁演示
- Maven : JsonMappingException: Incompatible Jackson version: 2.9.5
- 《深入理解Linux内核》条目式笔记 _2
- Android系统中震动功能的测试
- Ubuntu alias在/etc/profile重启无效解决
- Freenas使用小结(一)安装
- 流水线效率计算公式_线束加工的生产效率、爬坡计划与产能提升浅读
- [4G5G专题-17]:需求-5G发展的主要驱动力
- 安装 Maxwell
- 2021软考软件设计师真题
- 阿斯蒂芬萨法撒旦法撒旦发射点发射得分萨法撒旦法撒旦法
- 【微生物相关数据库】NAR database issue
- MACOS 打开 Pycharm2020 闪退解决方法
- dc是什么游戏的简称_足球里位置简称CB和DC有什么区别
- PAT乙级1033 旧键盘打字
- ZJOI round1游记