SerialNumber 1.1.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package SerialNumber --version 1.1.0
NuGet\Install-Package SerialNumber -Version 1.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SerialNumber" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SerialNumber --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SerialNumber, 1.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SerialNumber as a Cake Addin
#addin nuget:?package=SerialNumber&version=1.1.0
// Install SerialNumber as a Cake Tool
#tool nuget:?package=SerialNumber&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SerialNumber - 建立流水號的抽號機套件
安裝
Install-Package SerialNumber -Version 1.1.0
如何使用
本套件可以直接使用物件定義流水號格式,亦可使用套件定義的格式化字串。 自定義時,請注意文字編碼的問題。
建立 Dispenser
Dispenser 為此套件的核心,用於建立流水號的迭代器
使用NumberDisk物件定義
using SerialNumber;
using SerialNumber.CommonNumerDisks;
//建立流水號 從 Test-α-A-00 至 Test-γ-Z-99
Dispenser dispenser = new Dispenser(
new ConstantNumberDisk('T'),
new ConstantNumberDisk('e'),
new ConstantNumberDisk('s'),
new ConstantNumberDisk('t'),
new ConstantNumberDisk('-'),
new CustomNumberDisk("Greek", "αβγ".ToCharArray()),
new ConstantNumberDisk('-') ,
new AlphaNumberDisk(),
new ConstantNumberDisk('-') ,
new DigitalNumberDisk(),
new DigitalNumberDisk()
);
foreach(var sn in dispenser){
Console.WriteLine(sn);
}
使用格式化字串定義
using SerialNumber;
// \a ,代表大寫英文字母 ,範圍值 : A-Z
// \d ,代表十進位數值,範圍值: 0-9
// \c:'αβγ' ,代表自定義,範圍值為 單引號'' 內的每個字元 ,此例為 α-γ
// 其餘皆為常值 不會跳號
//建立流水號 從 Test-α-A-00 至 Test-γ-Z-99
var dispenser = FormatParser.Parse(@"Test-\c:'αβγ'-\a-\d\d");
foreach(var sn in dispenser){
Console.WriteLine(sn);
}
設定流水號的起始值
使用基本方式設定起始值
using SerialNumber;
using SerialNumber.CommonNumerDisks;
//只有SetableNumberDisk 的衍伸類別能設定初始值
//起始值為 Test-β-Z-90
Dispenser dispenser = new Dispenser(
new ConstantNumberDisk('T'),
new ConstantNumberDisk('e'),
new ConstantNumberDisk('s'),
new ConstantNumberDisk('t'),
new ConstantNumberDisk('-'),
new CustomNumberDisk("Greek", "αβγ".ToCharArray()){Skip = 1},// β
new ConstantNumberDisk('-') ,
new AlphaNumberDisk(){Skip = 25}, // Z
new ConstantNumberDisk('-') ,
new DigitalNumberDisk(){Skip=9}, // 9
new DigitalNumberDisk()
);
使用格式化字串時設定
using SerialNumber;
// 在 變動數值後面加{} ,內部數值為起始的index值(從0起編)
//起始值為 Test-β-Z-90
var dispenser = FormatParser.Parse(@"Test-\c:'αβγ'{1}-\a{25}-\d{9}\d");
使用擴充方法設定
using SerialNumer;
var dispenser = FormatParser.Parse(@"Test-\c:'αβγ'-\a-\d\d");
//起始值為 Test-β-Z-90
dispenser.SetStartNumber("Test-β-Z-90");//如果設定字串的格式與流水號不合,將擲出FormatException
建立 Dealer
Dealer 為 Dispenser 的 逐步迭代用的外覆類別
var dealer = new Dealer(FormatParser.Parse(@"Test-\a\d"));
dealer.Dispenser.SetStartNumber("Test-A9"); //設定起始值
Console.WriteLine(dealer.Current()??"NULL"); // 為呼叫Next()前為 null
var firstNumber = dealer.Next(); //取出第一個值 => Test-A9
var secondNumber = dealer.Next();//取出第二個值 => Test-B0
Console.WriteLine($"firstNumber {firstNumber},secondNumber:{secondNumber}");
Console.WriteLine($"Dealer Current : {dealer.Current()}");
Console.WriteLine($"Dealer Deal Count : {dealer.AlreadyDealCount}");
dealer.Reset(); //重設 ,起始值會回到 Test-A9
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.