覆盖Object的虚方法

时间:2013-07-03 12:59:03

标签: c# c++ oop override swig

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

我该怎么做?可能吗? (我不想从SWIG生成的类中派生出来,当然..对于1类有两个类会使事情变得复杂并导致错误和错误。)

1 个答案:

答案 0 :(得分:1)

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

对于ToString(),请参阅MSDN how to override ToString

对于等于()或==请参阅MSDN how to override Equals

对于GetHashCode(),请参阅MSDN how to override GetHashCode

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

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

如果您从未使用过patial课程,请查看此处:MSND partial classes guide

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