ConstTypeArgs.Ushorts
1.0.0
dotnet add package ConstTypeArgs.Ushorts --version 1.0.0
NuGet\Install-Package ConstTypeArgs.Ushorts -Version 1.0.0
<PackageReference Include="ConstTypeArgs.Ushorts" Version="1.0.0" />
paket add ConstTypeArgs.Ushorts --version 1.0.0
#r "nuget: ConstTypeArgs.Ushorts, 1.0.0"
// Install ConstTypeArgs.Ushorts as a Cake Addin #addin nuget:?package=ConstTypeArgs.Ushorts&version=1.0.0 // Install ConstTypeArgs.Ushorts as a Cake Tool #tool nuget:?package=ConstTypeArgs.Ushorts&version=1.0.0
Ushort 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.Ushorts
namespace for passing ushort
values as const type arguments.
Usage scenarios include:
- Static configuration,
- Eliminating unnecessary instance constructors,
- "Passing" values to type initializers,
- and more.
The following is a simple Hello World example to demonstrate how this works:
using ConstTypeArgs.Ushorts;
public class Foo<TSize>
where TSize : K_Ushort
{
public static readonly int[] FooArray = new int[TSize.Value];
static Foo()
{
Console.WriteLine($"Integer array size is {FooArray.Length}");
}
}
// Elsewhere, assuming _3 has a value of 3 and _16 has a value of 16.
var foo = new Foo<_3>(); // Outputs "Integer array size is 3"
foo = new Foo<_16>(); // Outputs "Integer array size is 16"
The following shows how a new ushort
const type argument could be defined.
public readonly struct _32 : K_Ushort<_32>
{ public static ushort Value => 32; }
You can also create new domain-specific ushort
const type arguments like so:
public sealed class DefaultInitialCollectionSize : Ushort<_32>;
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 | 110 | 7/30/2024 |
Initial release.