public string ToString() { const int length = 32 + 4 + 1; byte * str = stackalloc byte[length]; for (int i = 0, i2 = 0; i != 16; ++i, i2 += 2) { if (i == 4 || i == 6 || i == 8 || i == 10) { char delimiter = '-'; Text.Encoding.ASCII.GetBytes(&delimiter, 1, &str[i2], 1); ++i2; } Number.sprintf(&str[i2], "%02x", data[i]); } str[32 + 4] = 0; var charArray = stackalloc char[length + 1]; for (int i = 0; i != length; ++i) { charArray[i] = (char)str[i]; } charArray[length] = '\0'; return(new string(charArray)); }
public unsafe string ToString() { byte *str = stackalloc byte[Number.SingleNumberBufferLength + 1]; int length = Number.sprintf(str, "%G", this); str[Number.SingleNumberBufferLength] = 0; var charArray = stackalloc char[length + 1]; for (int i = 0; i != length; ++i) { charArray[i] = (char)str[i]; } charArray[length] = '\0'; return(new string(charArray)); }