ListDefaultConstructor
List default constructor is a writer that creates lists with default values.
IWriterToRef<Avalanche.Void, List<int>> listDefaultConstructor;
IWriterToRef<Avalanche.Void, int[]> arrayDefaultConstructor;
Creating a default constructor
Constructor can be created with a delegate adapter.
var listDefaultConstructor = DelegateWriter.Reader<Avalanche.Void, List<int>>(@void => new List<int>());
var arrayDefaultConstructor = DelegateWriter.Reader<Avalanche.Void, int[]>(@void => Array.Empty<int>());
ListDefaultConstructorRequest(Type) builds a default constructor from list type.
ListDefaultConstructorRequest request = new ListDefaultConstructorRequest(typeof(List<int>));
IWriterToRef<Avalanche.Void, List<int>> myClassDefaultConstructor =
AccessorServices.Instance
.GetRequired<ListDefaultConstructorRequest, IWriterToRef<Avalanche.Void, List<int>>>(request);
Usage
Default constructor creates a list from Void.
List<int> myClass = listDefaultConstructor.Read();
int[] myStruct = arrayDefaultConstructor.Read();
Full Example
Full example
using System;
using System.Collections.Generic;
using Avalanche.Accessor;
using Avalanche.Service;
using Avalanche.Writer;
public class listdefaultconstructor
{
public static void Run()
{
{
#pragma warning disable CS0168
// <01>
IWriterToRef<Avalanche.Void, List<int>> listDefaultConstructor;
IWriterToRef<Avalanche.Void, int[]> arrayDefaultConstructor;
// </01>
#pragma warning restore CS0168
}
{
// <11>
var listDefaultConstructor = DelegateWriter.Reader<Avalanche.Void, List<int>>(@void => new List<int>());
var arrayDefaultConstructor = DelegateWriter.Reader<Avalanche.Void, int[]>(@void => Array.Empty<int>());
// </11>
}
{
// <16>
ListDefaultConstructorRequest request = new ListDefaultConstructorRequest(typeof(List<int>));
IWriterToRef<Avalanche.Void, List<int>> myClassDefaultConstructor =
AccessorServices.Instance
.GetRequired<ListDefaultConstructorRequest, IWriterToRef<Avalanche.Void, List<int>>>(request);
// </16>
ListDefaultConstructorRequest myStructRequest = new ListDefaultConstructorRequest(typeof(int[]));
IWriterToRef<Avalanche.Void, int[]> myStructDefaultConstructor =
AccessorServices.Instance
.GetRequired<ListDefaultConstructorRequest, IWriterToRef<Avalanche.Void, int[]>>(myStructRequest);
}
{
var listDefaultConstructor = DelegateWriter.Reader<Avalanche.Void, List<int>>(@void => new List<int>());
var arrayDefaultConstructor = DelegateWriter.Reader<Avalanche.Void, int[]>(@void => Array.Empty<int>());
// <21>
List<int> myClass = listDefaultConstructor.Read();
int[] myStruct = arrayDefaultConstructor.Read();
// </21>
}
}
}