我需要在运行时为对象附加一个唯一标识符。该标识符必须在应用程序的整个生命周期内保持唯一。我计划在对象模型的基类中使用一个私有成员变量来实现这一点。该变量将在对象初始化时设置,并且其值将在对象的生命周期内保持不变。在应用程序的整个生命周期中,没有其他对象可以拥有相同的标识符。
当然,我可以使用 System.Guid,但每个对象都需要128位的存储空间,我希望消耗更少的资源。我尝试使用 Int32 并使用 System.Environment.TickCount 属性进行初始化,但分辨率不够,有些对象最终被分配了相同的值。
TickCount 的文档说明 TickCount 属性在约 29 天后会滚动到负数,然后在另外 29 天后回到零。我很愿意通过缩短回滚时间来换取更高的分辨率。
我还有其他不知道的选项吗?
当然,我可以使用 System.Guid,但每个对象都需要128位的存储空间,我希望消耗更少的资源。我尝试使用 Int32 并使用 System.Environment.TickCount 属性进行初始化,但分辨率不够,有些对象最终被分配了相同的值。
TickCount 的文档说明 TickCount 属性在约 29 天后会滚动到负数,然后在另外 29 天后回到零。我很愿意通过缩短回滚时间来换取更高的分辨率。
我还有其他不知道的选项吗?