有一个类:   public class MyClass
   {
      ...      private MyClass():this("abc")   //这里的 this("abc")是啥意思?
      {
          ... 
      }
      ...   }谢谢指教!

解决方案 »

  1.   

    调用另外一个构造器把private MyClass(string xxx)
    {
    }
      

  2.   

    this表示该类本身所声明的、形式参数表与实际参数表最匹配的另一个实例构造函数,这个构造函数会在执行正在声明的构造函数之前执行。
    using System;
    class A
    {
        public A(int n) 
        { 
             
        }
        public A(string s, int n) : this(0)
        {
            
        }
    }
    class Test
    {
        static void Main()
        {
            A a = new A("A Class", 1);
        }
    }
      

  3.   

    base是调用基类的构造方法,而this是调用类自身的构造方法。
    参考
      

  4.   

    执行完private MyClass():this("abc") 
          {
          }
    构造函数后,还会执行
    MyClass("abc")
          {
          }
    构造函数
      

  5.   

    使用默认值进行构造。
    public class test
    {
        public test()
            :this(0)
        {
        }    public test(int n)
            :this(n, "abc")
        {
        }    public test(int n, string text)
        {
            ...
        }
    }如果你想使用0和"abc"进行实例化,可以直接new test()
    如果你想指定n,而text使用默认,可以new test(3)
    如果两个参数你都想指定,可以new test(3,"def")
    在平时开发时,可以经常看到在new .net的类时,会列出很多构造重载,有时我们只指定了一两个参数而已,其他的都是使用默认值。
    在.net 4.0中,已经有 默认参数 了。public void func(int n=0, string text="abc"){};