對不起,文章的標題反序列化相同對象時獲得一個現有的對象引用,不知道怎麼去表達它更好..如何從磁盤
我有一個對象unit
我救到文件系統使用MemoryStream
和BinaryFormatter
。
現在我必須運行一個NUNIT測試,檢查對象car
和carloadedFromDisk
是否相等。此測試失敗,因爲它看起來像在堆上有不同的引用。
是否有可能使反序列化對象carloadedFromDisk
指向對象車的現有引用? 我能做些什麼來使測試通過?
例子:
var car = new Car("Audi");
var unit = new Unit("GoldSmith", car);
unit.save();
var carloadedFromDisk = Car.get(carId); // deserialized
Assert.AreEqual(unit.Car, carloadedFromDisk); // <-- fails
爲什麼使用19作爲哈希的初始值,爲什麼你用23乘以散列,意外?感謝您的快速回復! – Legends
@Lemends是素數 - 目的是獲得良好的散列碼分佈,以避免所有項目進入字典或其他散列集合的相同存儲桶。雖然人們說它[更好地使用大素數](https://stackoverflow.com/questions/263400/what-is-the-best-algorithm-for-an-overridden-system-object-gethashcode) –