Pattern: Call chain over BitConverter.ToString
Issue: -
Use Convert.ToHexString
or Convert.ToHexStringLower
when encoding bytes to a hexadecimal string representation. These methods are more efficient and allocation-friendly than using BitConverter.ToString
in combination with String.Replace
to remove dashes and String.ToLower
.
Example of incorrect code:
using System;
using System.Text;
class HelloWorldEncoder
{
private readonly byte[] _data = Encoding.ASCII.GetBytes("Hello World");
public string Encode()
{
return BitConverter.ToString(_data).Replace("-", "");
}
public string EncodeToLower()
{
return BitConverter.ToString(_data).Replace("-", "").ToLower();
}
}
Example of correct code:
using System;
using System.Text;
class HelloWorldEncoder
{
private readonly byte[] _data = Encoding.ASCII.GetBytes("Hello World");
public string Encode()
{
return Convert.ToHexString(_data);
}
public string EncodeToLower()
{
return Convert.ToHexStringLower(_data);
}
}