public Class ABC { public ABC(){} public void D(){} public static void E(){} }要访问D,必须先声明一个ABC的实例,再访问。 E就不用,ABC.E()属性和方法一样,静态的就是可以不用通过实例化就可以访问。
楼上的说得不太好,静态的和对象是有差异的,除了一个实例化一个不实例化之外,非静态的可以new 随意几个实例,存储的内容也不一样,而静态的属性所有的赋值语句都只针对同一个内存(也就是同一个变量)例子: public staticClass A { public static string name; }public Class B { public string name; } class Program { static void Main(string[] args) { Class1.name = "a"; Class1.name = "b"; Console.WriteLine(Class1.name);//这里总是一个 Class2 a = new Class2(); Class2 b = new Class2(); a.name = "11"; b.name = "22"; Console.WriteLine(a.name+" "+b.name);//这里可以实例化多个,而name属性会根据对象改变 Console.ReadLine(); } }
非静态的就要先new一个实例,再从实例来访问方法或属性。
{
public ABC(){} public void D(){} public static void E(){}
}要访问D,必须先声明一个ABC的实例,再访问。
E就不用,ABC.E()属性和方法一样,静态的就是可以不用通过实例化就可以访问。
public staticClass A
{
public static string name;
}public Class B
{
public string name;
}
class Program
{
static void Main(string[] args)
{
Class1.name = "a";
Class1.name = "b";
Console.WriteLine(Class1.name);//这里总是一个
Class2 a = new Class2();
Class2 b = new Class2();
a.name = "11";
b.name = "22";
Console.WriteLine(a.name+" "+b.name);//这里可以实例化多个,而name属性会根据对象改变
Console.ReadLine();
}
}