class Class1
{
private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
} Class1 o1 = new Class1();
Class1 o2 = new Class1();我不明白static Class1()和 public Class1()用意和他们的执行过程,结果count=3,是怎么得出来的?
{
private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
} Class1 o1 = new Class1();
Class1 o2 = new Class1();我不明白static Class1()和 public Class1()用意和他们的执行过程,结果count=3,是怎么得出来的?
解决方案 »
- C# 如何将图片封装至dll中
- 怎么控制开始时间结束时间不要重叠
- 求一个C#类,实现输入汉字输出汉字对应的拼音
- Flash 调用摄像头 (C# Webform)
- 关于remoting做三层架构问题,觉得好像不是三层
- DataGrid里希望能用DataSet映射的同时,加上一列图片列,当DataSet中表的某一字段的值为1时,显示一个图片,否则显示另一张图片,如何做
- 关于 hoot 系统钩子的问题 c#
- (HttpWebRequest)HttpWebRequest.Create("参数Uri")中文问题
- 怎样在DataGrid格式化显示SQL Server的Numberic字段值?
- 有哪些能实现"类似于OutLook菜单条的第三方控件?
- 错误提示:“二元运算符的参数之一必须是包含类型”
- 要一个真正的递归获取所有控件
Class1 o1 = new Class1();
Class1 o2 = new Class1();
{
count++;
}
这是一个静态构造函数,它只在类第一次被加载时(第一次new的时候),执行一次,注意只执行一次.
一般用于配置应用程序的运行环境。这是count变成1,
Class1 o1 = new Class1();
Class1 o2 = new Class1(); 上面两条语句执行了下面这条语句二次:public Class1()
{
count++;
}
结果就是3了,以上只是个人的意见,如有不对之处,请指教!谢谢!
第二个是非静态的,在实例化后才执行。
当 static Class1()
{
count++;
} 时,已经被执行,count==1;
后面两次都是实例化
public Class1()
{
count++;
}
这个
就是说count++被执行了两次,所以是count==3了
class Class1
{
private static int count = 0; // 静态构造函数用于初始化静态变量,只运行一次
// 什么时候?在第一次使用该类并在实例化对象之前
static Class1()
{
count++;
}
// 实例构造函数用于初始化实例变量
public Class1()
{
count++;
}
}