在c#中一个类的静态成员有静态变量和静态方法,这里首先介绍静态变量.
首先说一下静态变量的特点:
1.静态变量属于类,而不属于类的任何实例.
(From MSDN:Use the static modifier to declare a static member, which belongs to the type itself rather than to a specific object.)
2.静态变量可以通过类名直接访问,而不能通过实例访问.
如: class A
{
public static string AName;
}
我们想要访问AName可以通过A.AName 的方式.
3.在内存中static 变量只分配一块内存,各个实例如果修改静态变量则修改的是同一个内存地址上的值,也就是静态变量被各个实例共享.
如下代码所示:
![](https://i-blog.csdnimg.cn/blog_migrate/81178cc93a2a3bb5048d90d76e7ec935.gif)
class Program
{
private static int sum = 0 ;
static void Main( string [] args)
{
Program p1 = new Program();
Program p2 = new Program();
Program p3 = new Program();
Console.WriteLine(p1.f(p2.f(p3.f( 2 ))));
Console.Read();
}
int f( int n)
{
sum += n;
return sum + 1 ;
}
}
各位同学,Console 最后输出的是多少呢 ?