using System;
namespace ConsoleApplication1

  class Class1
  {
  static void Main(string[] args) { Write();  }
  static void Write()  {  Console.WriteLine ("This is Text");  }
  }
}
可见用法和C++差不多,但是注意static静态限制符,C++在类中调用自己的方法(成员函数)是不需要加static的,但是在C#中必须加,因为C#是完全面向对象的语言,只有当方法Write()是静态的时候才能够直接调用,不然必须先用类创建一个实例才能调用。

解决方案 »

  1.   

    只有当方法Write()是静态的时候才能够直接调用,不然必须先用类创建一个实例才能调用
    very correct
      

  2.   

    不完全正确。但是注意static静态限制符,C++在类中调用自己的方法(成员函数)是不需要加static的,但是在C#中必须加
    ----------------C# 访问自己的成员,也不需要加 static ——除了入口 Main()。using System;
    namespace ConsoleApplication1{  class Class1{
      static void Main(string[] args) { 
       Write();  
       new testCls().test();
      }  static void Write(){  
       Console.WriteLine("This is Text");  
      } } class testCls{
      public void test(){
       doTestNoneStatic();
      }
      private void doTestNoneStatic(){
       Console.Write("doTestNoneStatic();doTestNoneStatic();");
      }
     }}  
      

  3.   

    C++在类中调用自己的方法(成员函数)是不需要加static的,但是在C#中必须加这句不对,比如
    public class Class1
    {
         public void write1(){ Console.WriteLine( "write1" ); }
         public void write2(){ write1(); Console.WriteLine( "write2" );}
    }
    C#中也可以调用自己的非static方法
      

  4.   

    static void Main(string[] args) { Write();  }Main比较特殊,它是程序的入口点,它不属于任何类,虽然它在Class1,所以在它里面调用函数必须要new一个实例,否则就要用static进行修饰明白了不?
      

  5.   

    不是不完全对,是完全不对静态的属性、方法是属于类,而不是属于类的实例(对象)的静态的属性、方法是在该类的定义被加载的时候初始化,该类所有的对象都有且只有一个静态属性、方法的copy。楼主写的类中是通过Main方法来调用别的方法,当然Main方法必须是静态的,因为入口只能有一个,既然静态的只存在一个,不属于某一个实例,所以在静态方法中只能访问静态属性或方法,但是非静态属性或方法都可以访问静态属性或方法。
      

  6.   

    static void Main(string[] args) { Write();  }Main比较特殊,它是程序的入口点,它不属于任何类,虽然它在Class1,所以在它里面调用函数必须要new一个实例,否则就要用static进行修饰