Here is the implementation detail Encoding.ASCII(from Encoding.cs):
private static volatile Encoding asciiEncoding;
public static Encoding ASCII
{
{
if (Encoding.asciiEncoding == null)
Encoding.asciiEncoding = (Encoding) new ASCIIEncoding();
return Encoding.asciiEncoding;
}
}
The main difference is that the type of the return value is different from what type you want to use ( ASCIIEncodingvs Encoding), and the Encodingbase class.
Encoding.ASCII .