微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 将类的对象转换为另一个对象

我有两个类几乎相等,除了存储在其中的数据类型.一个类包含所有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

原文地址:https://www.jb51.cc/csharp/96830.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐