首页 新闻 会员 周边

C# 静态类与静态成员的关系(还有VS带的内存查看问题)

0
悬赏园豆:100 [已关闭问题] 关闭于 2011-08-10 09:46

这个是我用C#写的测试代码

1 class Program
2 {
3 static void Main(string[] args)
4 {
5 int i = 0;
6 int j = 0;
7 string ss = "a";
8
9 Test t = new Test();
10 Console.WriteLine(Test.ta);
11
12 Console.ReadLine();
13 }
14 }
15
16 class Test
17 {
18 public static int ta = 0;
19
20 public static string ts = "mm";
21
22 private static int m;
23 }

这个是测试的部分过程的截图,




1.非静态类的静态成员一般是做什么用的
2.非静态类里面的静态的属性是一程序运行就分配内存的把?
3.我用vs的内存查看变量的地址,我看值类型(这里我看int类型的数据地址都是0x00000000)而引用类型(这里我看string)就有地址,vs的内存查看,查看的是什么?

请大侠帮忙解答疑问,小弟初学,感激不尽啊

MeDuke的主页 MeDuke | 初学一级 | 园豆:44
提问于:2011-08-10 00:58
< >
分享
所有回答(1)
0

所实话,这些问题还真不是很容易回答,静态类里面不能定义实例成员,非静态类里面可以有静态成员。。。具体什么用,这个没法回答。

顾晓北 | 园豆:10844 (专家六级) | 2011-08-10 09:34
只要解决第二个问题
我在static void Main(string[] args){《程序入口大括号那里设置了一个断点,》在那里快速监视,我就可以看到Test类里面的值,这个是不是说明静态成员程序一运行就分配好内存了呢?
但是有人告诉我是你要用到Test类才会分配内存。实际情况是什么样子的?
其他就算了吧,谢谢你啊
支持(0) 反对(0) MeDuke | 园豆:44 (初学一级) | 2011-08-10 09:38
我记得在什么地方看过说静态成员是第一次使用时分配内存,java里面是程序运行的时候就分配的,我想所谓net第一次使用应该也就是运行的时候吧。。。
支持(0) 反对(0) 顾晓北 | 园豆:10844 (专家六级) | 2011-08-10 11:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册