类型转换和操作符重载 (c#)
http://www.cnblogs.com/chenxizhang/archive/2008/09/14/1290735.html
也许你从来没有考虑过类型转换和操作符重载的问题,毕竟在很多时候,我们都是系统标准类型,使用内置的一些转换函数和操作符。
但是假设你经常性地需要创建自定义类型(或者结构体),同时你想为它们都实现更加丰富的效果,那么了解.NET所支持的类型转换和操作符重载就显得有些必要了
下面看看一个结构体的定义
public struct MyStruct{public string Name;/// <summary>/// 这是一个操作符重载,但他的作用是做类型转换,而且是隐式类型转换(implicit)/// 这个操作符的具体意义就是可以把字符串转换为一个对象/// </summary>/// <param name="s"></param>/// <returns></returns>static public implicit operator MyStruct(string s) {return MyStruct.Parse(s);}/// <summary>/// 手工地编写一个处理器(Parse)函数,表示从其他格式转换为对象/// </summary>/// <param name="s"></param>/// <returns></returns>static public MyStruct Parse(string s){MyStruct m = new MyStruct();m.Name = s;return m;}/// <summary>/// 重写该方法的目的是可以用一个字符串来表示一个对象/// </summary>/// <returns></returns>public override string ToString(){return string.Format("Name:{0}", Name);}}
下面看看如何在程序中使用
class Program{static void Main(string[] args){MyStruct m = "Test";//结构体可以不需要new即可使用 (执行这句时,调用static public implicit operator MyStruct(string s)方法)Console.Write(m);Console.Read();}}
转载于:https://www.cnblogs.com/lanchong/archive/2011/12/14/2287375.html
类型转换和操作符重载 (c#)相关推荐
- C#构造函数、操作符重载以及自定义类型转换
构造器 构造器(构造函数)是将类型的实例初始化的特殊方法.构造器可分为实例构造器和类型构造器,本节将详细介绍有关内容. 实例构造器 顾名思义,实例构造器的作用就是对类型的实例进行初始化.如果类没有显示 ...
- 操作符重载——C/C++学习笔记
此篇文章来自于网上,作为自己学习中的笔记,若有侵权行为,请告之,24小时之内必删除!下面就转入正题吧! 一.什么是操作符重载? 一看到重载,很容易就让人联想到成员函数重载,函数重载可以使名称相同的函数 ...
- C#中如何利用操作符重载和转换操作符
操作符重载 有的编程语言允许一个类型定义操作符应该如何操作类型的实例,比如string类型和int类型都重载了(==)和(+)等操作符,当编译器发现两个int类型的实例使用+操作符的时候,编译器会生成 ...
- 详解 C++ 的隐式类型转换与函数重载!
作者 | 樱雨楼 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 在上篇中,我们讨论了C++中与隐式类型转换相关的一些话题,而函数重载是与隐式类型转换相关的又一大重要话题,本篇将要讨论的 ...
- C++赋值操作符重载
1.赋值操作符重载的原因 赋值操作符是一个使用频率最高的操作之一,通常情况下它的意义十分明确,就是将两个同类型的变量的值从一端(右端)传到另一端(左端).但在以下两种情况下,需要对赋值操作符进行重载. ...
- C#笔记09 结构、枚举、异常、泛型、操作符重载、dll、垃圾回收与资源清理、XML注释
文章目录 结构体struct 枚举enum 异常Exception 执行try最近的最贴切的catch 继承Exception以定义异常 泛型 泛型的约束where 操作符重载 类型转换操作符重载 d ...
- C/C++ 之 操作符重载
1.成员函数重载操作符:除".","*","::","?:"外其他操作符都可重载 (1) a.双目操作符声明格式: cl ...
- C++拾趣——有趣的操作符重载
操作符重载是C++语言中一个非常有用的特性.它可以让我们比较优雅的简化代码,从而更加方便的编写逻辑. 为什么要使用操作符重载 一种常见的用法是重载<<运算符,让标准输出可以输出自定义的类型 ...
- C++——构造函数(拷贝构造,拷贝复制),析构函数,操作符重载
C++--构造函数(拷贝构造,拷贝复制),析构函数,操作符重载 构造函数与析构函数:: 涉及构造函数还可以看这篇文章C++搞懂深拷贝初始化=与赋值=的区别 1.声明和定义构造函数和析构函数 构造函数在 ...
最新文章
- PHP 给页面内容中的所有图片添加特定链接
- php zip 编码,encoding - 用PHP如何检测一个ZIP包内的文件是在何种编码的系统下创建的...
- odoo 中多币种处理(外币处理)
- MySQL 基础知识(基本架构、存储引擎差异)
- java泛型一定用包装类_你不知道的基本数据类型和包装类
- AD16从两层切到显示一层的视图shift+s
- linux安全擦除ssd命令,如何在不破坏SSD的情况下安全擦除SSD | MOS86
- 【辅助开发】游戏辅助开发全流程-golang
- matlab提取汉字拼音,中文转拼音工具
- 前端字体截取技术,做炫酷网站再也不用怕中文字体数据量大啦!【实战】
- 电商平台日志分析系统(大数据) 上(不完整-版本不对应)
- Modern PHP
- RSSI in wifi
- 操作系统实战 45 讲:运行HelloOS界面
- 矩阵矩阵的维度矩阵按某一维度进行拼接
- 打开excel服务器客户端无响应怎么办,excel服务器客户端登录不起
- vue3实现活跃度(热力图)
- linux ubuntu 22.04双屏显示颜色变绿问题解决
- CSS系列之过渡 transition(CSS3)
- 高德关于获取天气接口
热门文章
- 什么是进程?什么是线程?
- 计算机输入输出设备说课稿,信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)...
- c语言程序设计实验二模板,C语言程序设计实验二.doc
- tensorflow的基础
- 时间戳转中国人能看得懂的日期格式 yy-mm-dd
- Ubuntu 16.04 主题美化及常用软件安装
- 2017年3月20日下午学习日志
- django之分页、cookie装饰器
- PHP按比例生成縮略圖片
- 为 SQL Server 启用 AWE 内存。