ConstTypeArgs.Ints
1.0.0
dotnet add package ConstTypeArgs.Ints --version 1.0.0
NuGet\Install-Package ConstTypeArgs.Ints -Version 1.0.0
<PackageReference Include="ConstTypeArgs.Ints" Version="1.0.0" />
paket add ConstTypeArgs.Ints --version 1.0.0
#r "nuget: ConstTypeArgs.Ints, 1.0.0"
// Install ConstTypeArgs.Ints as a Cake Addin #addin nuget:?package=ConstTypeArgs.Ints&version=1.0.0 // Install ConstTypeArgs.Ints as a Cake Tool #tool nuget:?package=ConstTypeArgs.Ints&version=1.0.0
Int 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.Ints
namespace for passing int
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.Ints;
public class Foo<TSize>
where TSize : K_Int
{
public static readonly int[] FooArray = new int[TSize.Value];
static Foo()
{
Console.WriteLine($"Array size is {FooArray.Length}");
}
}
// Elsewhere
var foo = new Foo<_3>(); // Outputs "Array size is 3"
foo = new Foo<_16>(); // Outputs "Array size is 16"
The following shows how a new int
const type argument could be defined.
public readonly struct _77 : K_Int<_77>
{ public static int Value => 77; }
You can also create new domain-specific int
const type arguments like so:
public sealed class DefaultInitialCollectionSize : Int<_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. 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.Ints:
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 | 166 | 7/30/2024 |
Initial release.