自定义显式类型转换 --explicit
2008-07-03 14:17
302 查看
语法:public static explicit operator 目的类型(源类型r)
using System; using System.Collections; using System.Linq; using System.Text; using System.Collections.Generic; using System.Runtime.Serialization; namespace TestCS { public struct Rectangle { public int Width, Height; public Rectangle(int width, int height) { this.Width = width; this.Height = height; } public void Draw() { for (int i = 0; i < Width; i++) { for (int j = 0; j < Height; j++) { Console.Write("*"); } } Console.WriteLine(); } public override string ToString() { return string.Format("Rectangle, Width is {0} Height is {1}", Width, Height); } } public struct Square { public int Length; public Square(int length) { Length = length; } public void Draw() { for (int i = 0; i < Length; i++) { for (int j = 0; j < Length; j++) { Console.Write("*"); } } Console.WriteLine(); } public override string ToString() { return string.Format("Sqare :length is{0} ", Length); } public static explicit operator Square(Rectangle r) { Square s = new Square(r.Height); return s; } public static explicit operator Square(int r) { Square s = new Square(r); return s; } public static explicit operator int(Square s) { return s.Length; } } class Program { static void Main(string[] args) { Console.WriteLine(" Rectangle"); Rectangle r = new Rectangle(4, 3); Console.WriteLine(r.ToString()); r.Draw(); Console.WriteLine("From Rectangle"); Square s = (Square)r; Console.WriteLine(s.ToString()); s.Draw(); Console.WriteLine("From int"); Square s2 = (Square)3; Console.WriteLine(s2.ToString()); s2.Draw(); Console.WriteLine("to int"); int i = (int)s2; Console.WriteLine(i.ToString()); } } }
相关文章推荐
- explicit和implicit属于转换运算符,如用这两者可以让我们自定义的类型支持相互交换。
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- c#实现显式的用户自定义类型转换(关键字explicit operator)
- c# implicit explicit关键字(隐式和显式数据类型转换)
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- 杂货边角(19):explicit显式类型转换限定符号
- 对象类型转换,explicit,显式和隐式
- c# implicit explicit关键字(隐式和显式数据类型转换)
- .net类型自定义隐式(显式)转换操作的位置问题
- struts2自定义类型转换(1)基于DefaultTypeConverter
- C++:显式和隐式初始化、显式和隐式类型转换
- 让自定义的类型可以和任意的类型之间转换
- C++中显式和隐式初始化和类型转换
- enum枚举类型赋值之switch语句与显示类型转换(Explicit Type Conversion)速度之比较
- IOS 自定义实体类型转换为Dictionary
- Xmal中引用自定义的类、类型转换继承TypeConvert
- c++的转换构造函数和杜绝隐式类型转换的explicit关键字
- 逆天的C++:显式类型转换
- spring boot 自定义配置文件的类型转换