除了存储在其中的数据类型外,我有两个几乎相等的类。一类包含所有double值,而另一类包含所有float值。
class DoubleClass
{
double X;
double Y;
double Z;
}
class FloatClass
{
float X;
float Y;
float Z;
}
现在,我想将DoubleClass转换为FloatClass。
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;
编辑
我将运算符更改为,explicit
而不是implicit
因为FloatClass
在示例中使用了强制转换。我更喜欢使用explicit
,implicit
所以它迫使我确认对象将转换为哪种类型(对我来说,这意味着更少的干扰错误和可读性)。
但是,您可以使用implicit
转换,然后只需要执行以下操作:
var convertedObject = doubleObject;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句