让自己的类拥有显式和隐式类型转换功能

嘎子 C# 2016-03-04 955 次浏览 , 没有评论

如果用别人写的类和自己写的类进行混合编程的话有时隐式转换会非常有用,例如我遇到一个问题,之前自己写了一个矩阵计算的类用的是double类型的值,但是后来用了别人更专业的类用的是Complex(复数,自定义的类)类型。这时如果有一个从Complex到double和从double到Complex的隐式转换,那就太完全美了。这是就要用到implicit和explicit两个关键字了。

implicit关键字用于声明隐式的用户定义类型转换运算符。(explicit反之)

隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。但是,因为可以在未指定的情况下发生隐式转换,因此必须注意防止令人不愉快的后果。一般情况下,隐式转换运算符应当从不引发异常并且从不丢失信息,以便可以在不知晓的情况下安全使用它们。如果转换运算符不能满足那些条件,则应将其标记为 explicit。 

下面是我在Complex类中增加的代码:

有一点要注意的是,一个类中不能同时写显式和隐式声明,只能是其中一个,但是如果声明了隐式的转换,那么其对应的显示转换也会自动提供。如果声明了显式转换,其对应的隐式转换不会提供的。

原创文章,文章首发于:Riley Ge (@rileyge) — Steemit

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: 让自己的类拥有显式和隐式类型转换功能

相关主题

说点什么

您将是第一位评论人!

提醒
avatar
回顶部