class Tester
{
int var;
Tester(double var)
{
this.var = (int)var;

}

Tester(int var)
{
this("hello");
}

Tester(String s)
{
this();
    System.out.println(s);
}
Tester()
{
    System.out.println("good-bye");
}

public static void main(String[] args)
{
Tester t = new Tester(5);
}
}
为什么不是hello呢 而是 goodbye hello而在C#中(见下面函数)就是hello 而不是goodbye hello
using System ; public class M
{

 public static void Main( )
           { 
  Tester t = new Tester(5);
  Console.ReadLine();
 }
 
           
 
}class Tester
{
int var;
public Tester()
{
    Console.WriteLine("good-bye");
}


public Tester(double var)
{
this.var = (int)var;

}

public Tester(int var)
{
Console.WriteLine("hello");
}

public Tester(String s)
{
Console.WriteLine(s);
    
}


}

解决方案 »

  1.   

    new Tester(5)时,编译器发现你传的参数5是个int,所以调用
    Tester(int var)
    {
    this("hello");
    }
    这时编译器发现this("hello"),所以要先调用构造函数:
    Tester(String s)
    {
    this();
        System.out.println(s);
    }这时编译器发现又发现this();所以又要先调用
    Tester()
    {
        System.out.println("good-bye");
    }程序的结果就是goode-bye hello
      

  2.   

    我想把这段java程序 改成c#的 可我不知道 this("hello");在c#中该如何修改