首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Encoding.ASCII与新ASCIIEncoding()

Encoding.ASCII与新ASCIIEncoding()
EN

Stack Overflow用户
提问于 2014-01-02 09:53:41
回答 2查看 1.9K关注 0票数 5

如果我用:

( A) var targetEncodingA = Encoding.ASCII;

( B) var targetEncodingB = new ASCIIEncoding();

那么targetEncoding0和targetEncoding1都是相同类型的。

在使用A或B时,是否有任何首选方案和/或优缺点?

(除了每次使用构造函数创建新实例之外)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-02 10:10:56

下面是Encoding.ASCII实现细节(来自Encoding.cs):

代码语言:javascript
复制
private static volatile Encoding asciiEncoding;

public static Encoding ASCII
{
  {
    if (Encoding.asciiEncoding == null)
      Encoding.asciiEncoding = (Encoding) new ASCIIEncoding();
    return Encoding.asciiEncoding;
  }
}

主要区别在于返回类型不同,这取决于您希望使用哪种类型(ASCIIEncodingEncoding),而Encoding是基类。

从性能的角度来看,Encoding.ASCII是首选。

票数 9
EN

Stack Overflow用户

发布于 2014-01-02 10:02:13

在所有情况下,我更喜欢Encoding.ASCII,它是一个静态属性。它避免每次需要时创建一个新实例(单例)。

个人而言,我避免在可能的情况下使用新关键字,当静态类可以为您这样做时。我要补充的是,Encoding.ASCII比新的ASCIIEncoding()更短。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20880246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档