我有一个 dll,我在其中定义了一个特定对象(比方说,Point3)以及不同的方法。
我有另一个 dll,我在其中使用相同类型的对象,但由于我想保持独立性,我声明了一个新对象 Point3_。这只是元素 (x,y,z) 的容器。
最后,我有一个使用这两个库的项目,我想知道是否有一种干净的方法可以从 Point3 转换为 Point3_,假设它们具有兼容的类型。
现在,我正在写这样的东西:
p_ = new Point3_(p.X, p.Y, p.Z);
我想要这样的东西:
p_ = (Point3_)p;
PS:如果这是重复的,我很抱歉,但我不确定如何在网络上搜索它。
提前致谢
编辑: 我不介意实现转换代码,但我想在第三个项目中编写它,它知道这两个库。这样我就可以单独开发库了。
最佳答案
不是真的。唯一的选择是实现您自己的转换运算符,但这恰恰意味着您要避免的耦合类型。
但是,您可以编写扩展方法来为您处理这个问题 - 这些方法可以在某些互操作库或您自己的消费者项目中声明。
public static Point3_ AsPoint3_(this Point3 @this)
{
return new Point3_(@this.X, @this.Y, @this.Z);
}
简称为
p_ = p.AsPoint3_();
关于c# - 在不同库之间转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32116631/