对不起,文章的标题反序列化相同对象时获得一个现有的对象引用,不知道怎么去表达它更好..如何从磁盘
我有一个对象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) –