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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的C#相关文章