gpt4 book ai didi

c# - 在不同库之间转换对象

转载 作者:太空狗 更新时间:2023-10-30 00:39:57 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com