【发布时间】:2011-01-21 02:22:13
【问题描述】:
在 C# 中是否有办法将隐式转换添加到其他程序集中已定义的类型?
例如,如果我使用两个不同的程序集,每个程序集都提供自己的Vector3 struct,并在它们的 API 中使用它,那么能够定义一次转换,然后只传递一个 Foo.Vector3 就好了到一个需要 Bar.Vector3 的方法,并使其自动转换。
如果我有库的源代码,那么我可以添加隐式转换运算符。如果没有该来源,我目前每次都使用辅助函数自己明确地进行转换。我希望有更好的方法。
我意识到我可以创建自己的 Vector3 struct 与其他两个结构的隐式转换运算符,但这并不能解决我想直接传递一个对象的所有情况一种(外部定义的)类型转换为期望另一种的方法。
额外问题:库的作者是否应该在其 API 中公开 Vector3 结构之类的内容以促进这方面的易用性?
【问题讨论】:
-
扩展运算符.. 我喜欢它:)