无法覆盖GetHashCode(在重写方法int UnityEngine.Object.GetHashCode时无法更改返回类型“)

时间:2013-08-15 22:58:02

标签: c# unity3d override gethashcode

我在Unity3D游戏引擎中使用C#。在我的MonoBehaviour脚本中,我需要覆盖GetHashCode。但每当我这样做时,我得到错误cannot change return type when overriding method int UnityEngine.Object.GetHashCode"(不是GetHashCode位于System名称空间内吗?)

我的压倒一切:

public override int GetHashCode()
{
    return index.GetHashCode();
}

如果我从顶部删除using UnityEngine;标头,则该错误不再存在。我试图明确告诉它要覆盖什么,它不像处理接口,所以它不起作用。

这里发生了什么,有两个GetHashCode?我该如何覆盖GetHashCode

感谢。

编辑:我删除了using System;并遗漏了UnityEngine,结果相同。

编辑:我也试过一个空课,另一个项目,没有:(

3 个答案:

答案 0 :(得分:0)

UnityEngine.Object有自己的GetHashCode()并覆盖它,你只需执行上面所做的操作,除了你有错误的返回类型。见下文:

public class Test : MonoBehaviour {
    public override int GetHashCode() {
        return base.GetHashCode();
    }
}

答案 1 :(得分:0)

.Net无法理解您正在使用哪个对象。

using Object=System.Object;

试试这个

答案 2 :(得分:0)

Solved。对不起混淆的家伙,这是一个Resharper错误的错误。我的代码没有任何问题。感谢任何试图提供帮助的人。