我在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
,结果相同。
答案 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错误的错误。我的代码没有任何问题。感谢任何试图提供帮助的人。