日期:2014-05-20  浏览次数:20662 次

这句话对吗?
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()是静态的时候才能够直接调用,不然必须先用类创建一个实例才能调用。



------解决方案--------------------
C++在类中调用自己的方法(成员函数)是不需要加static的,但是在C#中必须加

这句不对,比如
public class Class1
{
public void write1(){ Console.WriteLine( "write1 " ); }
public void write2(){ write1(); Console.WriteLine( "write2 " );}
}
C#中也可以调用自己的非static方法

------解决方案--------------------
不是不完全对,是完全不对

静态的属性、方法是属于类,而不是属于类的实例(对象)的

静态的属性、方法是在该类的定义被加载的时候初始化,该类所有的对象都有且只有一个静态属性、方法的copy。

楼主写的类中是通过Main方法来调用别的方法,当然Main方法必须是静态的,因为入口只能有一个,既然静态的只存在一个,不属于某一个实例,所以在静态方法中只能访问静态属性或方法,但是非静态属性或方法都可以访问静态属性或方法。
------解决方案--------------------
static void Main(string[] args) { Write(); }

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