我在2003.net里面做这样的事的时候,被编译器报错:方法被认为是类名。不知道是不是c#不允许这样的调用,或者有其他的语法可以用来这样调用。

解决方案 »

  1.   

    这么做不行,为什么要这么做呢?如果说你因为两个构造函数里有大量代码相似,而只是参数不同的话。你可以把那相同的代码提出来作为一个中间函数,两个构造函数来调用它。比如:
    class A
    {
       public A()
       {
         Foo();
       }    public A(int a)
       {
         Foo();
       }
       
       private Foo()
       {   }
       
    }
      

  2.   

    sorry 忘记声明
       private void Foo()
       {   }
      

  3.   

    可以。constructor:base()----基类的构造。
    constructor:this()----本类的构造函数,ofcourse 两个构造函数的签名必须不同。比如含参数的构造器,调用一个不含参数的构造器 classA(int x,....):classA();
      

  4.   

    是可以调用其他构造函数的,但是不能在构造函数内调用,可以这样写:
    public class Test
    {
        public Test():this("test")
        {
            
        }
        
        private Test(string strParam)
        {
           Console.WriteLine(strParam);
        }}