hashCode用於區分不同數據。
顯示結果:
intDatas[0] .HashCode:-553279680 int_A:11///HashCode:11 int_B:12///HashCode:12
intDatas[1] .HashCode:896162432 int_A:21///HashCode:21 int_B:22///HashCode:22
由於intDatas[0]和intDatas[1]只是數據沒有實體GameObject,因此只有HashCode沒有instenceID
測試代碼
...{
...
IntData[] intDatas;
// Use this for initialization
void Start()
{
test_();
}
private void test_()
{
IntData intData1 = new IntData();
intData1.int_A = 11;
intData1.int_B = 12;
IntData intData2 = new IntData();
intData2.int_A = 21;
intData2.int_B = 22;
intDatas = new IntData[2] { intData1, intData2 };
for (int i = 0; i < intDatas.Length; i++)
{
Debug.Log("intDatas[" + i + "] .HashCode:" + intDatas[i].GetHashCode() + " int_A:" + intDatas[i].int_A + "///HashCode:" + intDatas[i].int_A.GetHashCode() +
" int_B:" + intDatas[i].int_B + "///HashCode:" + intDatas[i].int_B.GetHashCode());
}
}
...
}
public class IntData
{
public int int_A;
public int int_B;
}
如果數組成員的數值相同,會是什麼結果
intDatas[0] .HashCode:539807424 int_A:11///HashCode:11 int_B:12///HashCode:12
intDatas[1] .HashCode:1989249536 int_A:11///HashCode:11 int_B:12///HashCode:12
...
intData1.int_A = 11;
intData1.int_B = 12;
...
intData2.int_A = 11;
intData2.int_B = 12;
...
如果 再次運行,HashCode是否發生變化
intDatas[0] .HashCode:2141205056 int_A:11///HashCode:11 int_B:12///HashCode:12
intDatas[1] .HashCode:-704320128 int_A:11///HashCode:11 int_B:12///HashCode:12
的確會發生變化,只是每一次運行,確定唯一性。
相關資料:
1.[Unity][數據存儲][存檔]唯一標識instanceID有啥用
2.