public DoubleGenericNameKey(NameKey name, NameKey[] types, IOrType <IKey, IError>[] dependentTypes) { this.Name = name ?? throw new ArgumentNullException(nameof(name)); Types = types ?? throw new ArgumentNullException(nameof(types)); // int index = 0; //Types = types // ?.Select(x=> x.SwitchReturns( key => OrType.Make< DoubleGenericTemplateKye, IError >( new DoubleGenericTemplateKye(index++, 0)), error => OrType.Make < DoubleGenericTemplateKye, IError >(error))) // ?.ToArray() // ?? throw new System.ArgumentNullException(nameof(types)); DependentTypes = dependentTypes ?? throw new ArgumentNullException(nameof(dependentTypes)); }
public GenericNameKey(NameKey name, IKey[] types) { this.name = name ?? throw new System.ArgumentNullException(nameof(name)); Types = types ?? throw new System.ArgumentNullException(nameof(types)); }
public GenericKeyDefinition(NameKey name, IReadOnlyList <IKey> parameters) { Name = name ?? throw new ArgumentNullException(nameof(name)); Parameters = parameters ?? throw new ArgumentNullException(nameof(parameters)); }