博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# explicit与implicit
阅读量:6745 次
发布时间:2019-06-25

本文共 895 字,大约阅读时间需要 2 分钟。

1、它们解决什么问题?

  考虑下面的需求,Person类有个字段age。我想使用Person p = (Person) 18 来创建一个age为18的Person对象,怎么办?

  更进一步,我想使用Person p = 18 来创建一个age为18的Person对象,怎么办?

2、使用explicit(显式)和implicit(隐式)

1    class Person 2     { 3         private int age; 4         public int Age 5         { 6             get { return age; } 7             set { age = value; } 8         } 9 10         public static explicit operator Person(int age)11         {12             return new Person() { age = age, };13         }14 15         //public static implicit operator Person(int age)16         //{17         //    return new Person() { age = age, };18         //}19     }20 21     class Program22     {23         static void Main(string[] args)24         {25             Person p = (Person)18; // 调用explicit26             //Person p = 18; // 调用implicit27         }28     }

注意:二者不同同时提供,否则编译错误。这种语法其实是借鉴了C++的方式,并进行了扩展。一般情况下,不要使用这种类型转换,因为不直观。

转载地址:http://gnuho.baihongyu.com/

你可能感兴趣的文章
利用C#实现分布式数据库查询
查看>>
Iphone开发之音频101 (part 3):程序实现播放音频
查看>>
iPhone:创建、连接和使用静态库(过时了,仅参考)
查看>>
Python中级 —— 02函数式编程
查看>>
顺丰快递服务越来越差
查看>>
struts2的单文件上传
查看>>
Spring学习(2):面向接口编程思想
查看>>
黄聪:利用OpenXml生成Word2007文档(转)
查看>>
前端面试题十九
查看>>
MySQL之InnoDB索引面试学习笔记
查看>>
热敏打印机编程
查看>>
使用.NET操作SQLLITE
查看>>
Navicat Premium 12全系列
查看>>
K-means算法简介
查看>>
二次团队二
查看>>
开始写博客,监督自己学习
查看>>
Cocos2dx学习之-----关于拖动缓冲,点击屏幕获取方向
查看>>
IOS+openCV在Xcode的入门开发(转)
查看>>
C# 字数统计(word count)
查看>>
datatable 修改点击列头进行排序顺序
查看>>