コード例 #1
0
        public static int CopyTo(this IConvertible value, TypeCode typeCode, byte[] buffer, int offset)
        {
            if (buffer == null)
            {
                throw new ArgumentNullException(nameof(buffer));
            }

            if (offset < 0 || offset >= buffer.Length)
            {
                throw new ArgumentOutOfRangeException(nameof(offset));
            }

            var size = value.GetSize(typeCode);

            if (buffer.Length - offset < size)
            {
                throw new ArgumentException(nameof(buffer) + "缓冲区太小!");
            }

            var bytes = value.ToBytes(typeCode);

            Buffer.BlockCopy(bytes, 0, buffer, offset, bytes.Length);
            return(bytes.Length);
        }