ProviderBase
ProviderBase<Key, Value> is base class for providers. It implements most the IProvider features, such as properties, indexer and different TryGet variants.
IProvider<double, double> squareProvider = new SquareProvider();
WriteLine(squareProvider[10]); // -> "100"
Implementing class overrides TryGetValue method.
public class SquareProvider : ProviderBase<double, double>
{
public override bool TryGetValue(double x, out double value)
{
value = x * x;
return true;
}
}
Full Example
Full example
using System;
using Avalanche.Utilities.Provider;
using static System.Console;
class provider_providerbase
{
public static void Run()
{
{
// <01>
IProvider<double, double> squareProvider = new SquareProvider();
WriteLine(squareProvider[10]); // -> "100"
// </01>
}
}
// <03>
public class SquareProvider : ProviderBase<double, double>
{
public override bool TryGetValue(double x, out double value)
{
value = x * x;
return true;
}
}
// </03>
// <20>
public class SquareResultProvider : ResultProviderBase<double, double>
{
protected override bool TryGetValue(double x, out double value)
{
// NaN
if (double.IsNaN(x)) throw new ArgumentException("NaN");
// Infinity
if (double.IsInfinity(x)) throw new ArgumentException("Infinity");
// Assign value
value = x * x;
// Return
return true;
}
}
// </20>
}