예제 #1
0
        /// <summary>
        /// 合并两个数据块
        /// </summary>
        /// <param name="lhs">左边操作对象</param>
        /// <param name="rhs">右边操作对象</param>
        /// <returns></returns>
        public static DataBlock operator +(DataBlock lhs, DataBlock rhs)
        {
            if (lhs == null && rhs == null)
            {
                return(null);
            }
            else if (lhs == null)
            {
                DataBlock result = new DataBlock(rhs.DataLength);
                result.Add(rhs.buffer, rhs.ReadIndex, rhs.DataLength);
                return(result);
            }
            else if (rhs == null)
            {
                DataBlock result = new DataBlock(lhs.DataLength);
                result.Add(lhs.buffer, lhs.ReadIndex, lhs.DataLength);
                return(result);
            }
            else
            {
                DataBlock result = new DataBlock(lhs.DataLength + rhs.DataLength);

                result.Add(lhs.buffer, lhs.ReadIndex, lhs.DataLength);
                result.Add(rhs.buffer, rhs.ReadIndex, rhs.DataLength);

                return(result);
            }
        }
예제 #2
0
        /// <summary>
        /// �ϲ��������ݿ�
        /// </summary>
        /// <param name="lhs">��߲�������</param>
        /// <param name="rhs">�ұ߲�������</param>
        /// <returns></returns>
        public static DataBlock operator +(DataBlock lhs, DataBlock rhs)
        {
            if (lhs == null && rhs == null)
                return null;
            else if (lhs == null)
            {
                DataBlock result = new DataBlock(rhs.DataLength);
                result.Add(rhs.buffer, rhs.ReadIndex, rhs.DataLength);
                return result;
            }
            else if (rhs == null)
            {
                DataBlock result = new DataBlock(lhs.DataLength);
                result.Add(lhs.buffer, lhs.ReadIndex, lhs.DataLength);
                return result;
            }
            else
            {
                DataBlock result = new DataBlock(lhs.DataLength + rhs.DataLength);

                result.Add(lhs.buffer, lhs.ReadIndex, lhs.DataLength);
                result.Add(rhs.buffer, rhs.ReadIndex, rhs.DataLength);

                return result;
            }
        }