我有一个 C++ 类,我希望覆盖SWIG 生成的 C# 类中的ToString、GetHashCode和Equals。
我怎样才能做到这一点?可能吗?(当然,我不想从 SWIG 生成的类中派生出来。1 个类有 2 个类只会使事情复杂化并导致错误和错误)。
我有一个 C++ 类,我希望覆盖SWIG 生成的 C# 类中的ToString、GetHashCode和Equals。
我怎样才能做到这一点?可能吗?(当然,我不想从 SWIG 生成的类中派生出来。1 个类有 2 个类只会使事情复杂化并导致错误和错误)。
不确定我是否完全理解这个问题,但如果您可以访问源代码并准备深入研究 C# 类本身,那么覆盖这些类非常简单,请查看下面的 MSDN 参考资料。
对于 ToString(),请参阅MSDN 如何覆盖 ToString
对于 Equals() 或 == 请参阅MSDN 如何覆盖 Equals
对于 GetHashCode(),请参阅MSDN 如何覆盖 GetHashCode
我可以看到这样做的唯一问题是,如果您从 SWIG(我从未使用过的产品,只是为了澄清)生成源代码,那么您有可能在输出时覆盖源代码,这意味着您将不得不再写一次。
避免这种情况的一个选项是使用分部类,因此您使用 SWIG 生成的分部类不会用其中的覆盖方法覆盖分部类。
如果您从未使用过分词类,我会在这里查看:MSND 部分类指南
这些只是解决您问题的一些建议!