c# – 将类的对象转换为另一个对象
发布时间:2020-12-15 17:45:05 所属栏目:百科 来源:网络整理
导读:我有两个类几乎相等,除了存储在其中的数据类型.一个类包含所有double值,而其他类包含所有float值. class DoubleClass{ double X; double Y; double Z;}class FloatClass{ float X; float Y; float Z;} 现在我有一个需要转换为FloatClass的DoubleClass. var d
我有两个类几乎相等,除了存储在其中的数据类型.一个类包含所有double值,而其他类包含所有float值.
class DoubleClass { double X; double Y; double Z; } class FloatClass { float X; float Y; float Z; } 现在我有一个需要转换为FloatClass的DoubleClass. var doubleObject = new DoubleClass(); var convertedObject = (FloatClass)doubleObject; // TODO: This 一个简单的方法是创建一个创建一个新的FloatClass对象的方法,填充所有值并返回它.有没有其他有效的方式来做到这一点. 解决方法
使用转换运算符:
public static explicit operator FloatClass (DoubleClass c) { FloatCass fc = new FloatClass(); fc.X = (float) c.X; fc.Y = (float) c.Y; fc.Z = (float) c.Z; return fc; } 然后只是使用它: var convertedObject = (FloatClass) doubleObject; 编辑 由于我在本示例中使用了FloatClass转换,所以我将操作符更改为显式而不是隐式.我更喜欢使用显式过度隐式,所以它强制我确认对象将被转换的类型(对我来说,这意味着较少的分心错误可读性). 但是,您可以使用隐式转换,然后您只需要做: var convertedObject = doubleObject; Reference (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |