0

我有一个 C++ 类,我希望覆盖SWIG 生成的 C# 类中的ToStringGetHashCodeEquals

我怎样才能做到这一点?可能吗?(当然,我不想从 SWIG 生成的类中派生出来。1 个类有 2 个类只会使事情复杂化并导致错误和错误)。

4

1 回答 1

1

不确定我是否完全理解这个问题,但如果您可以访问源代码并准备深入研究 C# 类本身,那么覆盖这些类非常简单,请查看下面的 MSDN 参考资料。

对于 ToString(),请参阅MSDN 如何覆盖 ToString

对于 Equals() 或 == 请参阅MSDN 如何覆盖 Equals

对于 GetHashCode(),请参阅MSDN 如何覆盖 GetHashCode

我可以看到这样做的唯一问题是,如果您从 SWIG(我从未使用过的产品,只是为了澄清)生成源代码,那么您有可能在输出时覆盖源代码,这意味着您将不得不再写一次。

避免这种情况的一个选项是使用分部类,因此您使用 SWIG 生成的分部类不会用其中的覆盖方法覆盖分部类。

如果您从未使用过分词类,我会在这里查看:MSND 部分类指南

这些只是解决您问题的一些建议!

于 2013-07-03T14:19:42.980 回答