public IntcodeProgram(string value, IInstructionFactory instructionFactory, IOpcodeParser opcodeParser) { if (value is null) { throw new ArgumentNullException(nameof(value)); } _program = value .Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries) .Select(number => int.Parse(number, CultureInfo.InvariantCulture)) .ToList(); _instructionFactory = instructionFactory ?? throw new ArgumentNullException(nameof(instructionFactory)); _opcodeParser = opcodeParser ?? throw new ArgumentNullException(nameof(opcodeParser)); }
public IntcodeProgram(int[] value, IInstructionFactory instructionFactory, IOpcodeParser opcodeParser) { _program = value?.ToList() ?? throw new ArgumentNullException(nameof(value)); _instructionFactory = instructionFactory ?? throw new ArgumentNullException(nameof(instructionFactory)); _opcodeParser = opcodeParser ?? throw new ArgumentNullException(nameof(opcodeParser)); }