加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读