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); }