C#explicit和implicit关键字实现类型转换
using System; namespace ConsoleTest
{
class Program
{
static void Main(string[] args)
{
//implicit 隐式装换
Digit dig1 = new Digit(7.0m);
decimal num = dig1;
Digit dig2 = 12.0m;
Console.WriteLine("num = {0} dig2 = {1}", num, dig2.Val); //explicit 显示转换
AA a1 = new AA
{
A = "A",
B = ,
C = 1.0m
}; BB b1 = new BB
{
A1 = "B",
B1 = ,
C1 = 2.0m
};
AA a2 = (AA)b1;
BB b2 = (BB)a1;
Console.WriteLine($"{a2.A}|{a2.B}|{a2.C}");
Console.WriteLine($"{b2.A1}|{b2.B1}|{b2.C1}");
Console.ReadLine();
}
} class Digit
{
public decimal Val;
public Digit(decimal d) { Val = d; }
public static implicit operator decimal(Digit d)
{
return d.Val;
}
public static implicit operator Digit(decimal d)
{
return new Digit(d);
}
} class AA
{
public string A { get; set; }
public int B { get; set; }
public decimal C { get; set; } public static explicit operator BB(AA c)
{
return new BB
{
A1 = c.A,
B1 = c.B,
C1 = c.C
};
}
} class BB
{
public string A1 { get; set; }
public int B1 { get; set; }
public decimal C1 { get; set; }
public static explicit operator AA(BB c)
{
return new AA
{
A = c.A1,
B = c.B1,
C = c.C1
};
}
} }
C#explicit和implicit关键字实现类型转换的更多相关文章
- C#中转换运算符explicit、implicit、operator、volatile研究
C#中的这个几个关键字:explicit.implicit与operator,估计好多人的用不上,什么情况,这是什么?字面解释:explicit:清楚明白的;易于理解的;(说话)清晰的,明确的;直言的 ...
- C#的关键字Explicit 和 Implicit
一.explicit和implicit explicit 关键字用于声明必须使用强制转换来调用的用户定义的类型转换运算符:implicit 关键字用于声明隐式的用户自定义的类型转换运算符. 总结来说: ...
- C#中的Explicit和Implicit
今天在Review一个老项目的时候,看到一段奇怪的代码. if (dto.Payment == null) continue; var entity = entries.FirstOrDefault( ...
- operator、explicit与implicit
说这个之前先说下什么叫隐式转换和显示转换 1.所谓隐式转换,就是系统默认的转换,其本质是小存储容量数据类型自动转换为大存储容量数据类型. 例如:float f = 1.0: double d=f:这样 ...
- C#中的explicit和implicit了解一下吧
今天在研究公司项目框架的时候看到了下面的用法,public static implicit operator JsonData(int data);.貌似很久没用过这种隐式转换的写法了,因此重新温习一 ...
- (二) operator、explicit与implicit 操作符重载
有的编程语言允许一个类型定义操作符应该如何操作类型的实例,比如string类型和int类型都重载了(==)和(+)等操作符,当编译器发现两个int类型的实例使用+操作符的时候,编译器会生成把两个整 ...
- (一) operator、explicit与implicit 操作符重载
原文地址: Click Here 操作符重载必须用public static 应为操作符是用来操作实例的. operator operator ...
- explicit 和 implicit 的用法
explicit 和 implicit 属于转换运算符,如用这两者可以让我们自定义的类型支持相互交换 explicti 表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A) ...
- 【RS】CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering-CoupledCF:在推荐系统深度协作过滤中学习显式和隐式的用户物品耦合
[论文标题]CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Colla ...
随机推荐
- H5中对history栈的操作
今天研究一下H5中history操作的相关知识,首先梳理一下基本内容: 一.在history中的跳转 使用 back(), forward()和 go() 方法来完成在用户历史记录中向后和向前的跳转. ...
- IntelliJ IDEA 统一设置编码为utf-8编码 /idea设置编码
问题一. File->Settings->Editor->File Encodings 问题二. File->Other Settings->Default Settin ...
- docker-nginx 与 tomcat--dockerfile
nginx: FROM nginx:latest COPY nginx/sources.list /etc/apt/sources.list #RUN apt-get update && ...
- 记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)
题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...
- php – 通过curl从url获取JSON数据
我试图通过curl连接从URL获取JSON数据.当我打开链接时:它显示{“version”:“N / A”,“success”:true,“status”:true}.现在,我希望获得以上内容. 到目 ...
- 提升开发幸福感的10条JS技巧
鱼头总结一些能够提高开发效率的JS技巧,这些技巧很实用,觉得挺好,想推荐给大家,所以有了这篇文章. 生成随机UID const genUid = () => { var length = 20 ...
- 使用Alibaba的Nacos做为SpringCloud的注册和配置中心,并结合Sentinel+Nocos动态进行限流熔断
最近在学习阿里的Nacos组件以及Sentinel组件,折腾出了一个小demo. Git地址:https://github.com/yangzhilong/nacos-client 有兴趣的小伙伴可以 ...
- Thinkphp5 实现动态模板主题多个模板切换
在项目开发过程中会遇到一个网站有不同风格,本文详细介绍Thinkphp5 实现模板主题多个模板切换 一.在Config中配置view_path模板路径代码如下 1 2 3 4 5 6 7 8 9 10 ...
- mysql删除唯一索引
在项目中用spring data jpa指定了一个唯一索引: @Entity @Table(name = "t_product") @Getter @Setter @AllArgs ...
- phpstorm2019.1 实现保存(ctrl+s)同时格式化代码
1.选择Edit(编辑)->Macros(宏)->Start Macro Recording(开始录制宏),如下图: 2.直接按想要录制的快捷键,先按Ctrl+ALT+L,然后键盘按Ctr ...