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#)相关推荐

  1. C#构造函数、操作符重载以及自定义类型转换

    构造器 构造器(构造函数)是将类型的实例初始化的特殊方法.构造器可分为实例构造器和类型构造器,本节将详细介绍有关内容. 实例构造器 顾名思义,实例构造器的作用就是对类型的实例进行初始化.如果类没有显示 ...

  2. 操作符重载——C/C++学习笔记

    此篇文章来自于网上,作为自己学习中的笔记,若有侵权行为,请告之,24小时之内必删除!下面就转入正题吧! 一.什么是操作符重载? 一看到重载,很容易就让人联想到成员函数重载,函数重载可以使名称相同的函数 ...

  3. C#中如何利用操作符重载和转换操作符

    操作符重载 有的编程语言允许一个类型定义操作符应该如何操作类型的实例,比如string类型和int类型都重载了(==)和(+)等操作符,当编译器发现两个int类型的实例使用+操作符的时候,编译器会生成 ...

  4. 详解 C++ 的隐式类型转换与函数重载!

    作者 | 樱雨楼 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 在上篇中,我们讨论了C++中与隐式类型转换相关的一些话题,而函数重载是与隐式类型转换相关的又一大重要话题,本篇将要讨论的 ...

  5. C++赋值操作符重载

    1.赋值操作符重载的原因 赋值操作符是一个使用频率最高的操作之一,通常情况下它的意义十分明确,就是将两个同类型的变量的值从一端(右端)传到另一端(左端).但在以下两种情况下,需要对赋值操作符进行重载. ...

  6. C#笔记09 结构、枚举、异常、泛型、操作符重载、dll、垃圾回收与资源清理、XML注释

    文章目录 结构体struct 枚举enum 异常Exception 执行try最近的最贴切的catch 继承Exception以定义异常 泛型 泛型的约束where 操作符重载 类型转换操作符重载 d ...

  7. C/C++ 之 操作符重载

    1.成员函数重载操作符:除".","*","::","?:"外其他操作符都可重载 (1) a.双目操作符声明格式: cl ...

  8. C++拾趣——有趣的操作符重载

    操作符重载是C++语言中一个非常有用的特性.它可以让我们比较优雅的简化代码,从而更加方便的编写逻辑. 为什么要使用操作符重载 一种常见的用法是重载<<运算符,让标准输出可以输出自定义的类型 ...

  9. C++——构造函数(拷贝构造,拷贝复制),析构函数,操作符重载

    C++--构造函数(拷贝构造,拷贝复制),析构函数,操作符重载 构造函数与析构函数:: 涉及构造函数还可以看这篇文章C++搞懂深拷贝初始化=与赋值=的区别 1.声明和定义构造函数和析构函数 构造函数在 ...

最新文章

  1. PHP 给页面内容中的所有图片添加特定链接
  2. php zip 编码,encoding - 用PHP如何检测一个ZIP包内的文件是在何种编码的系统下创建的...
  3. odoo 中多币种处理(外币处理)
  4. MySQL 基础知识(基本架构、存储引擎差异)
  5. java泛型一定用包装类_你不知道的基本数据类型和包装类
  6. AD16从两层切到显示一层的视图shift+s
  7. linux安全擦除ssd命令,如何在不破坏SSD的情况下安全擦除SSD | MOS86
  8. 【辅助开发】游戏辅助开发全流程-golang
  9. matlab提取汉字拼音,中文转拼音工具
  10. 前端字体截取技术,做炫酷网站再也不用怕中文字体数据量大啦!【实战】
  11. 电商平台日志分析系统(大数据) 上(不完整-版本不对应)
  12. Modern PHP
  13. RSSI in wifi
  14. 操作系统实战 45 讲:运行HelloOS界面
  15. 矩阵矩阵的维度矩阵按某一维度进行拼接
  16. 打开excel服务器客户端无响应怎么办,excel服务器客户端登录不起
  17. vue3实现活跃度(热力图)
  18. linux ubuntu 22.04双屏显示颜色变绿问题解决
  19. CSS系列之过渡 transition(CSS3)
  20. 高德关于获取天气接口

热门文章

  1. 什么是进程?什么是线程?
  2. 计算机输入输出设备说课稿,信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)...
  3. c语言程序设计实验二模板,C语言程序设计实验二.doc
  4. tensorflow的基础
  5. 时间戳转中国人能看得懂的日期格式 yy-mm-dd
  6. Ubuntu 16.04 主题美化及常用软件安装
  7. 2017年3月20日下午学习日志
  8. django之分页、cookie装饰器
  9. PHP按比例生成縮略圖片
  10. 为 SQL Server 启用 AWE 内存。