FSharp Resource Web- F# F#文档 F#新闻 F#专家 F#开发系列教程
在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 变量只分配一块内存,各个实例如果修改静态变量则修改的是同一个内存地址上的值,也就是静态变量被各个实例共享.
如下代码所示:
代码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 最后输出的是多少呢 ?
静态类类可以声明为 static 的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
使用静态类来包含不与特定对象关联的方法。例如,创建一组不操作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些方法。
静态类的主要功能如下:
-
它们仅包含静态成员。
-
它们不能被实例化。
-
它们是密封的。
-
它们不能包含实例构造函数。
因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。
使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。
静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。
- QQ机器人下载 (2008-10-14 11:37:57)
- 一些ASP.NET方面的好书 (2009-03-20 11:19:09)
- 从丑陋到优雅,让代码越变越美续集之服务器端数据校验 (2009-03-31 04:59:37)
- 通过Web Services上传和下载文件 (2009-04-20 03:31:37)
- 把Array说透 (2009-10-09 10:17:40)
- 类和结构体的区别 (2010-07-05 02:48:38)
- 数据库指针 (2010-07-05 02:55:12)
- 名称(*)
- 邮箱
- 网站链接
- 验证(*)
-
正文(*)(留言最长字数:1024)
- 记住我,下次回复时不用输入个人信息
- 欢迎参与讨论,请在这里发表您的看法,表达您的观点。

