static void Main() 
是静态成员,执行Main()时,Test还没有实例化,当然不能执行构造函数了
这样:
static void Main() 
{
Test test=new Test();
for(int i=0;i<5;i++)
   Console.WriteLine(i.ToString());
   Console.ReadLine();
}

解决方案 »

  1.   

    1、private TempClass MyIns = new TempClass(); 只是属于 Class Test ,并没有 放在 Main 里
    2、Main 是入口函数,不说明Test的构造函数部起作用,如果你在Main 里
    new  Test 就可以发现了
      

  2.   

    to Sheep2002static void Main() 只是一个静态的函数,而不是成员啊?可我没有看过什么资料上写过静态函数需要实例化就可以自动执行的,而且,既然是一个类,为什么可以不用产生一个实例,就可以直接进入到其中的一个静态函数就开始执行呢?   在MFC中,也是在声明了一个全局的类事例后,才开始一系列的类事例的构造工作,这里是怎么回事呢?
      

  3.   

    static void Main() 
    是C#的入口函数,和C里的main()差不多。
    在一个启动项里,必须有static void Main()函数,
    之所以定义为是静态的,是因为它需要在类实例化前执行。
      

  4.   

    这么说来,C#的面向对象的格局怎么这么怪呢?sheep2002你知不知道什么地方有关于C#程序的启动事件顺序的资料呢?
      

  5.   

    构造函数必须public,实例化才可以访问
      

  6.   

    可我写的构造函数就是用的public关键字呀!
      

  7.   

    你没实例化,怎么会执行构造函数呢?
    下面这个你看了没?
    static void Main() 
    {
    Test test=new Test();
    for(int i=0;i<5;i++)
       Console.WriteLine(i.ToString());
       Console.ReadLine();
    }
      

  8.   

    看看vs自动生成的代码:/// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    }
      

  9.   

    to sheep2002 看来,我的意思可能表达得有些模糊。我是说,如果,我没有将我的类实例化,导致构造函数无法执行,那么,为什么 static void Main() 就可以不用实例化就可以运行呢?我们不能说它是程序的入口点而来说“本来就是这样!”,我需要的是机制,是根本的运行流程,简单一点就是C#中类这个东西都应该遵循的。我想,既然是一个面向对象的语言,不会因为一个程序的入口就去破坏类的封装吧?通常,我们调用一个类的方法是将它实例化后,用 ObjectName.Method() 的形势,如果这个成员函数是静态的话,就用 ClassName::Method() 的形势,这是我以前写C++的时候的概念!但是,在C#中,为什么一个static void  Main() 就让这个类缺出了一个口呢?
      

  10.   

    其实不光是static void Main,调用任何static的方法或属性都不会执行
    普通的构造函数的,只会执行static的构造函数一次。
      

  11.   

    我是说为什么C#的程序会从一个类的一个普普通通的静态的成员函数Main()开始执行呢?而这样,这个类没有执行构造函数,也没有产生自己的实例!!还是说,凡是存在static void Main()成员函数的类中,在程序开始执行的时候,其构造函数就不起作用了呢?
      

  12.   

    类的静态成员,包括静态字段(即静态变量)和静态函数,是和类的实例的个数无关的。也就是说,无论存在该类的零个、一个、多个实例,类的静态成员都只存在一个。而类的构造函数在每生成该类的一个实例时都会刚好执行一次。如果没有生成该类的实例,当然不执行该类的构造函数了。这跟该类中是否包括 Main() 函数无关。Main() 函数是类的一个静态函数,跟普通的静态函数不同的是,它被定义为程序的入口点而已,没有其他区别。