自定义隐式转换 public static implicit operator 和显式转换
来源:互联网 发布:微信h5软件 编辑:程序博客网 时间:2024/06/06 05:34
例子:对用户user中,用户名first name和last name进行转换成合成一个限定长度为10个字符新name。
自定义隐式转换:
namespace transduction{ public partial class transductionForm : Form { public transductionForm() { InitializeComponent(); } private void btnDisplay_Click(object sender, EventArgs e) { User user = new User() { FirstName = textBox1.Text, LastName = textBox2.Text }; LimitedName limitedName = user;//将user转换为limitedName string lName = limitedName;//将limitedName转换为字符串型 listBox1.Items.Add(lName); } } class LimitedName { const int MaxNameLength = 10;//名字最长为10个字符 private string _name; public string Name { get { return _name; } set { _name = value.Length < 10 ? value : value.Substring(0, 10); } } public static implicit operator LimitedName(User user)// public static implicit operator是必须的,名称LimitedName为目标类型,参数User为源数据。 { LimitedName ln = new LimitedName();//建立目标实例 ln.Name = user.FirstName + user.LastName;//将源数据赋于目标实例 return ln; } public static implicit operator string(LimitedName ln)// { return ln.Name;//返回目标实例的数据。 } } class User { public string FirstName { get; set; } public string LastName { get; set; } }}
自定义显式转换:
将上面程序中的用explicit替换implicit,
LimitedName limitedName =(LimitedName ) user;//在user增加显式转换类型
0 0
- 自定义隐式转换 public static implicit operator 和显式转换
- Operator运算符重载与Implicit隐式类型转换
- Operator运算符重载与Implicit隐式类型转换
- 自定义隐式类型转换 implicit
- 菜鸟之隐式转换(implicit)、显示转换(explicit)及转换函数(operator()const)
- implicit隐式转换
- scala implicit 隐式转换
- scala implicit隐式转换
- Scala implicit隐式转换
- scala implicit 隐式转换
- scala implicit 隐式转换
- scala implicit 隐式转换
- scala implicit 隐式转换
- scala隐式转换implicit
- 类型转换的关键字explicit、implicit 和 operator
- C# 自定义 implicit和explicit转换
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- recycleview条目的背景选择器
- python中的yield简单使用
- bootbox
- Swift3.0中文教程:1.基础部分
- Android之动画效果编程基础
- 自定义隐式转换 public static implicit operator 和显式转换
- Android 过度绘制优化措施
- JDK1.5新特性4-静态导入
- 1026. Table Tennis (30)
- jquery扩展方法
- Java NIO系列教程(九) ServerSocketChannel
- 单词辨析
- ifb
- KNN算法之JAVA实现