ConstTypeArgs.Chars
1.0.0
dotnet add package ConstTypeArgs.Chars --version 1.0.0
NuGet\Install-Package ConstTypeArgs.Chars -Version 1.0.0
<PackageReference Include="ConstTypeArgs.Chars" Version="1.0.0" />
paket add ConstTypeArgs.Chars --version 1.0.0
#r "nuget: ConstTypeArgs.Chars, 1.0.0"
// Install ConstTypeArgs.Chars as a Cake Addin #addin nuget:?package=ConstTypeArgs.Chars&version=1.0.0 // Install ConstTypeArgs.Chars as a Cake Tool #tool nuget:?package=ConstTypeArgs.Chars&version=1.0.0
Char Const Type Arguments
Const type arguments (also called const type args) are types used to pass constant & static values to generics through type parameters. These values are available at compile-time and can be used in static contexts, such as static constructors, static fields, and static methods. This can provide enhanced type safety, compile-time polymorphism, performance improvements, and more.
You can use types in the ConstTypeArgs.Chars
namespace for passing ASCII character values as const type arguments.
The following is a simple Hello World example to demonstrate how this works:
using ConstTypeArgs.Chars;
public static class Foo<TChar>
where TChar: K_Char
{
private static readonly char Separator = TChar.Value;
public static void Output(string[] items)
{
foreach (var item in items)
Console.Write($"{item}{Separator}");
}
}
// Elsewhere
var helloWorld = new string[] { "Hello", "World!" };
Foo<Comma>.Output(helloWorld); // Output: Hello,World!
Foo<Slash>.Output(helloWorld); // Output: Hello/World!
Foo<Semicolon>.Output(helloWorld); // Output: Hello;World!
Foo<VerticalBar>.Output(helloWorld); // Output: Hello|World!
You can create new domain-specific char const type arguments like so:
public sealed class ListSeparator : Char<Comma>;
public sealed class TableSeparator : Char<VerticalBar>;
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
-
net8.0
- ConstTypeArgs.Core (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 111 | 7/30/2024 |
Initial release.