Encoding myencoding = Encoding.UTF8;
是用类Encoding生成一个对象myencoding吗?为什么不用new呢?Encoding.UTF8是Encoding类的一个属性呀,高不明白呀!希望高手解答,我是个菜鸟!

解决方案 »

  1.   

    一个类的属性可以是任何类型啊(当然包括本类),当你调用UTF8属性的时候,在返回你Encoding类型以前它可以new一个实例给你
      

  2.   

    Encoding.UTF8 是 Encoding 类的静态属性, 其返回值是 Encoding 类的一个实例.MSDN 关于 Encoding.UTF8 属性的说明如下:
    ----------------------------------------
    public static Encoding UTF8 {get;}
    属性值: UTF-8 格式的编码。
      

  3.   

    using System;
    using System.Text;class Test
    {
      static void Main()
      {
        Encoding e0 = Encoding.UTF8;      // Encoding的静态属性
        Encoding e1 = new UTF8Encoding(); // new 一个实例也可以
        Console.WriteLine(e0);      // System.Text.UTF8Encoding
        Console.WriteLine(e1);      // System.Text.UTF8Encoding
        Console.WriteLine(e0 is UTF8Encoding);          // True
        Console.WriteLine(e1 is UTF8Encoding);          // True
      }
    }/* 程序输出:
    System.Text.UTF8Encoding
    System.Text.UTF8Encoding
    True
    True
    */
      

  4.   

    wuyi8808(tm) studio 
    您好!感谢您的关注!
    我的理解是这样的用一个类创建一个对象,可以不使用NEW,象您说的“public static Encoding UTF8 ”,他的UTF8属性就是一个Encoding类型的!这点我可以理解,但是他的实现机制是什么呢?
    我能自己做一个类模拟一下吗?要是我自己看资料,这是属于哪个方面的问题呀!静态属性吗??谢谢您的帮助!