Dan*_*ard 1 c# unique uniqueidentifier
我正在开发一个将原始数据发送到zebra打印机并打印出条形码的应用程序.由于每个项目都有自己独特的条形码,我需要定义一个自动生成12位数字的唯一数字的变量.
看例子:
printBar prnt = new printBar("123456789012");
Run Code Online (Sandbox Code Playgroud)
无论如何定义一个double变量并将其传递给一个返回uniqely 12位数的函数并将其传递给printBar类?但是如何确保每次访问它都会返回一个唯一的值?
我还想到了另一种方式,因为我使用MS Access数据库,我可以创建一个AutoNumber数据类型的列并将其分配给Random,但是你没有得到所需的确切12位数,有时它会生成10位数的值,有时更多或更少.
您每天,每小时,每分钟生成多少次新条形码?
您可以使用像Visual Studio工作的自动版本控制这样的技术.
public static class UniqueId
{
static private int _InternalCounter = 0;
static public string Get()
{
var now = DateTime.Now;
var days = (int)(now - new DateTime(2000, 1, 1)).TotalDays;
var seconds = (int)(now - DateTime.Today).TotalSeconds;
var counter = _InternalCounter++ % 100;
return days.ToString("00000") + seconds.ToString("00000") + counter.ToString("00");
}
Run Code Online (Sandbox Code Playgroud)
通过这种方法,您将在2273年10月15日获得溢出,但我认为这可以由您的追随者解决.;-)
如果您需要每秒创建超过100个唯一ID,则可以将最后两行更改为:
var counter = _InternalCounter++ % 1000;
return days.ToString("0000") + seconds.ToString("00000") + counter.ToString("000");
Run Code Online (Sandbox Code Playgroud)
现在你每秒会有数千个唯一ID,但是2027年5月18日已经过了几天.如果太短,如果你用这一行将开始日期设置为2010,你可以再获得十年:
var days = (int)(now - new DateTime(2010, 1, 1)).TotalDays;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13373 次 |
| 最近记录: |