/// <summary> /// Constructs a Flag Data operation with multiple mutations. /// </summary> /// <param name="ops">The operations to perform.</param> /// /// <exception cref="ArgumentNullException"> /// <paramref name="ops"/> is null. /// </exception> /// <exception cref="ArgumentException"> /// <paramref name="ops"/> has a length of zero. /// </exception> public FlagMultiOperation(params FlagOperation[] ops) { if (ops == null) { throw new ArgumentNullException(nameof(ops)); } if (ops.Length == 0) { throw new ArgumentException( $"Must pass at least one {nameof(FlagOperation)} to {nameof(FlagMultiOperation)}!", nameof(ops)); } FlagOperation[] newOps = new FlagOperation[ops.Length]; Array.Copy(ops, newOps, ops.Length); Operations = Array.AsReadOnly(newOps); }
/// <summary> /// Constructs a Flag Data operation with multiple mutations. /// </summary> /// <param name="ops">The operations to perform.</param> /// /// <exception cref="ArgumentNullException"> /// <paramref name="ops"/> is null. /// </exception> /// <exception cref="ArgumentException"> /// <paramref name="ops"/> has a length of zero. /// </exception> public FlagOperation(params FlagOperation[] ops) { if (ops == null) { throw new ArgumentNullException(nameof(ops)); } if (ops.Length == 0) { throw new ArgumentException( $"Must pass at least one {nameof(FlagOperation)} when using multi constructor!", nameof(ops)); } FlagOperation[] newOps = new FlagOperation[ops.Length]; Array.Copy(ops, newOps, ops.Length); Type = OpType.Multi; Operations = Array.AsReadOnly(newOps); }