我正在寻找一种为本地创建的记录类生成唯一标识符的方法,然后以各种格式(XML,SQL等)保存
我见过人们使用DateTime和GetHashCode,但这似乎有助于根据样本大小重复标识符.
GUID有点矫枉过正,因为我不需要在全球范围内有任何独特(大)的东西.我也知道使用GUID和GetHashCode来减小尺寸,但是重复也会在这里出现.
有人可以建议生成简单唯一标识符的最佳实践或方法吗?
实现自己的几乎总是一个错误.小的唯一数字需要真正可靠地记录最后使用的数字.很难得到,硬盘崩溃,注册表偶尔会被破坏.你需要组织它,以便有一个单点的失败.类似于dbase的自动递增列.确保如果丢失了最后一个数字,也会完全丢失数据.这意味着,对于一个人来说,不应该有一种方法让用户复制数据而不复制最后一个数字的记录.或者您始终拥有所有数据的可靠副本,并可以从中恢复最后一个数字.很快.
您还将很难确保数字以原子方式递增.刚开始你的程序的两个实例通常足以引起混乱.修复这个问题很棘手,你需要一个存储数字的独立仲裁程序.
然后就是必须猜测从现在起10年或20年后会发生什么的负担.您的应用程序是否会扩展以满足当时的需求?这是非常罕见的,指望机器越来越快完成.什么是本地唯一号码现在需要成为全球唯一号码. 对此的要求非常不同.
不要乱用这个,16个字节什么都不是.使用Guid.