gpt4 book ai didi

c# - 在不编写包装器的情况下禁用 C# 中第三方类的隐式转换?

转载 作者:行者123 更新时间:2023-12-02 01:43:30 26 4
gpt4 key购买 nike

我使用的引擎具有 Vector3Vector2 类。

但是,意外地将Vector2传递给需要 Vector3的方法会经常出现问题。

目前它自动转换为 (x, y, 0) 的 Vector3。在遇到运行时问题后,我总是需要一些时间才能找到这些微不足道的原因......

是否可以以某种方式阻止这两个第三方类之间的隐式转换,以便我可以在编译时检测到这些问题?

目前我唯一的想法是编写包装器并用它们替换 Vector3 和 Vector2 的所有用法。

但是看起来很乏味。 还有其他办法吗?

最佳答案

您可以创建一个自定义代码分析器,并将其配置为在代码中发生这种隐式转换时引发编译时错误。

参见https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix获取教程。

如果您这样做,您还可以将该分析器放入 Nuget 包中,以便使用相同第三方库的其他人可以从您所做的工作中受益。

关于c# - 在不编写包装器的情况下禁用 C# 中第三方类的隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71240296/

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