如public class A
{
   public string a;
   public A(string a)
   {
     this.a=a;
   }}public class B
{
  public string b;
  public B(string b)
  {
    this.b=b;
  }
}
public class C
{
  public string c;
  public A Mya;
  public B Myb;
  public C(string c,string a,string b):Mya(a),Myb(b)
  {
    this.c=c;
  }
}
其中  public C(string c,string a,string b):Mya(a),Myb(b) 为什么会错呢
我学过C++里好像是这样的 
在C#里要怎么写 
那位回复下谢谢!

解决方案 »

  1.   

    C#里没办法按那个就方法写,C#只支持对基类和自身的构造函数的调用。
    成员的初始化必须写到里面。
    public class A 

      public string a; 
      public A(string a) 
      { 
        this.a=a; 
      } } public class B 

      public string b; 
      public B(string b) 
      { 
        this.b=b; 
      } 

    public class C 

      public string c; 
      public A Mya; 
      public B Myb; 
      public C(string c,string a,string b) 
      { 
        this.c=c; 
        Mya = new A(a);
        Myb = new B(b);
      }   public C(string c):this(c,"DefaultA","DefaultB"){}

    它支持这个,呵呵。还有一个base(...)这个暂时没办法说,因为C没有继承自其它类。
      

  2.   

    public C(string c):this(c,"DefaultA","DefaultB"){}
    这个 和 public C(string c,string a,string b) 
     
    是等价的吗