ProcessedValue 1.0.1
dotnet add package ProcessedValue --version 1.0.1
NuGet\Install-Package ProcessedValue -Version 1.0.1
<PackageReference Include="ProcessedValue" Version="1.0.1" />
<PackageVersion Include="ProcessedValue" Version="1.0.1" />
<PackageReference Include="ProcessedValue" />
paket add ProcessedValue --version 1.0.1
#r "nuget: ProcessedValue, 1.0.1"
#:package ProcessedValue@1.0.1
#addin nuget:?package=ProcessedValue&version=1.0.1
#tool nuget:?package=ProcessedValue&version=1.0.1
ProcessedValue
ProcessedValue is an implementation of a data structure (represented by a generic class) that stores a base value, a list of delegates that can sequentially (according to priority) modify the base value, and a property from which the current value (base value after modifications) can be retrieved. Value recalcutes on get if marked dirty (after Add/RemoveProcessor() for example).
Your delegates must match ProcessorDelegate signature:
void ProcessorDelegate<TValue>(ref TValue value)
Usage Example
//Create Processed
Processed<int> processed = new Processed<int>(2);
//Create Processor from anonymous lambda
Processor<int> processor = new Processor<int>((ref int x) => x *= 2);
//Create Processor from named method
Processor<int> processor2 = new Processor<int>(SomeMethodName);
//Add Processor to Processed
processed.AddProcessor(processor, 0); //(processor, priority)
//(2)(* 2) = 4
//Add another Processor on same priority
processed.AddProcessor(processor2, 0);
//(2)(* 2 + 2) = 6
//Add same Processor on same priority
processed.AddProcessor(processor2, 0);
//(2)(* 2 + 2 + 2) = 8
//Add same Processor on another priority
processed.AddProcessor(processor2, 1);
//(2)(* 2 + 2 + 2)(+ 2) = 10
//Add Processor to another Processed
processed2.AddProcessor(processor2, 0);
//(0)(+ 2) = 2
//Remove first such Processor from priority
processed.RemoveProcessor(processor2, 0);
//(2)(* 2 + 2)(+ 2) = 8
//Remove Processor from all priorities
processed.RemoveProcessorAtAll(processor2);
//(2)(* 2) = 4
//Check if Processed contains Processor
processed.ContainsProcessor(processor2);
//false
//Force call ProcessValue
processed.ProcessValue();
ProcessedValue was developed for use with Unity, so the code contains #if UNITY_EDITOR directives.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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. 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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ProcessedValue:
Package | Downloads |
---|---|
ProcessedValue.R3
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.