Encoding.ASCII与新的ASCIIEncoding() [英] Encoding.ASCII vs. new ASCIIEncoding()
问题描述
如果我使用:
A) var targetEncodingA = Encoding.ASCII;
和
B) var targetEncodingB = new ASCIIEncoding();
然后targetEncoding0和targetEncoding1属于同一类型。
是否存在任何首选方案和/或优点/缺点何时使用A或B?
(除了每次使用构造函数创建新实例外)
这是 Encoding.ASCII
实现细节(来自Encoding.cs):
私有静态易失性Encoding asciiEncoding;
公共静态编码ASCII
{
{
if(Encoding.asciiEncoding == null)
Encoding.asciiEncoding =(Encoding)新的ASCIIEncoding() ;
返回Encoding.asciiEncoding;
}
}
主要区别在于返回类型不同,这取决于您要使用的类型( ASCIIEncoding
与 Encoding
),以及 Encoding
是基类。
从性能的角度来看, Encoding.ASCII
是首选项。 / p>
If I use:
A) var targetEncodingA = Encoding.ASCII;
and
B) var targetEncodingB = new ASCIIEncoding();
then both targetEncoding0 and targetEncoding1 are of the same type.
Are there any preferred scenarios and/or advantages/disadvantages when to use A or B?
(besides creating new instance by constructor each time I use it)
Here is the Encoding.ASCII
implement detail (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 the return type differs, which depends on what type you wish to use (ASCIIEncoding
vs Encoding
), and Encoding
is the base class.
From a performance perspective, Encoding.ASCII
is the preference.
这篇关于Encoding.ASCII与新的ASCIIEncoding()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!