protected override OperationBase DeepCloneInternal()
        {
            var result = new NullTwoStatementOp <TStatement, TResult>(
                this.Statement1?.DeepClone(),
                this.Statement2?.DeepClone());

            return(result);
        }
        public override TwoStatementOpBase <TStatement, TResult> DeepCloneWithStatement2(IReturningOperation <TStatement> statement2)
        {
            var result = new NullTwoStatementOp <TStatement, TResult>(
                this.Statement1?.DeepClone(),
                statement2);

            return(result);
        }
        /// <inheritdoc />
        public bool Equals(NullTwoStatementOp <TStatement, TResult> other)
        {
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            if (ReferenceEquals(other, null))
            {
                return(false);
            }

            var result = this.Statement1.IsEqualTo(other.Statement1) &&
                         this.Statement2.IsEqualTo(other.Statement2);

            return(result);
        }