ConstTypeArgs.Uints
1.0.0
dotnet add package ConstTypeArgs.Uints --version 1.0.0
NuGet\Install-Package ConstTypeArgs.Uints -Version 1.0.0
<PackageReference Include="ConstTypeArgs.Uints" Version="1.0.0" />
paket add ConstTypeArgs.Uints --version 1.0.0
#r "nuget: ConstTypeArgs.Uints, 1.0.0"
// Install ConstTypeArgs.Uints as a Cake Addin #addin nuget:?package=ConstTypeArgs.Uints&version=1.0.0 // Install ConstTypeArgs.Uints as a Cake Tool #tool nuget:?package=ConstTypeArgs.Uints&version=1.0.0
Uint 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.Uints
namespace for passing uint 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 example to demonstrate how this works:
using ConstTypeArgs.Uints;
public class Foo<TVal>
where TVal : K_Uint
{
static Foo()
{
if (TVal.Value > 0)
Console.WriteLine("Value is positive! ");
if (TVal.Value > (uint)int.MaxValue)
Console.Write($"{TVal.Value} > integer max value!");
}
}
// Elsewhere, assuming that _2147483648 is equal to 2,147,483,648
var foo = new Foo<_2147483648>();
// Output: "Value is positive! 2147483648 > integer max value!");
Here's how you could define a uint const type argument:
public readonly struct Pos_2 : K_Uint<Pos_2>
{ public static uint Value => 2; }
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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- ConstTypeArgs.Core (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ConstTypeArgs.Uints:
Package | Downloads |
---|---|
ConstTypeArgs.Delegates
Builds on types of the ConstTypeArgs.Core library to provide const type arguments that allow you to use generic parameters to "pass" delegates to generics. This provides an analog to type specialization in C++, and can be used for scenarios such as: * Static polymorphism, * Eliminating unnecessary instance constructors, * "Passing" values to type initializers, * And a more. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 142 | 7/30/2024 |
Initial release.