| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 414 人关注过本帖
标题:求静态成员解释
取消只看楼主 加入收藏
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
结帖率:84%
收藏
已结贴  问题点数:14 回复次数:2 
求静态成员解释
类似静态成员变量,静态方法为一个类所拥有.但静态方法中只能使用静态成员,而不能使用非静态成员.
非 静态方法中既能使用静态成员,也能使用非静态成员.
 

这样说对不?还请各位给解释解释!谢谢!
2013-03-25 23:03
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
收藏
得分:0 
请帮忙看看有木有问题,特别是在静态和非静态的比较。


 1 using System;
 2
 3 class MyClass
 4 {
 5     public int nsMember;    //非静态成员变量
 6     public static int sMember;    //静态成员变量
 7     
 8     public MyClass(int i, int j)
 9     { //成员的初始化
10         nsMember = i;   
11         sMember = j;
12     }   
13 }
14
15 class Test
16 {
17     static void Main()
18     {
19         MyClass mc1 = new MyClass(50, 100); //创建一个MyClass实例,并初始化.
20         
21         Console.WriteLine(MyClass.sMember); //ok, sMember是MyClass类的静态成员,可以由类名直接引用. 此行输出100        
22         Console.WriteLine(MyClass.nsMember);//出错!nsMember是非静态成员,不能由类名直接引用        
23         Console.WriteLine(mc1.nsMember);    //ok, mc是一个已成功创建的对象,它拥有自己的非静态成员nsMember                                                                 
24                                             //此行输出50;        
25      MyClass mc2 = new MyClass(10, 20);     //创建一个新的实例,并初始化.
26         
27     Console.WriteLine(MyClass.sMember);//ok,由于在mc2初始化时已更改sMember为20,而sMember为所有MyClass类对象所共享,                                                                                                                           
                                            //故此行输出20.
29         Console.WriteLine(MyClass.nsMember);//同样出错!
30         
31         Console.WriteLine(mc2.nsMember);     //ok, 此行输出10;        
32         
33         Console.WriteLine(mc1.nsMember);    //此行输出50,因为mc1和mc2的非静态成员nsMember是互相独立的
 2  class MyClass
       {
 3      
 4     static void StaticFun()
 5     {
 6         nsMember += nsMember;     //出错!因为nsMember是非静态成员
 7         sMember += sMember;    //ok,因为sMember是静态成员
 8     }
 9     
10     void UStaticFun()
11     {
12         nsMember += nsMember;     //ok
13         sMember += sMember;    //ok
14     }
15 }
2013-03-25 23:12
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
收藏
得分:0 
哦,那上面的那个说法对不?
2013-03-25 23:33
快速回复:求静态成员解释
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028659 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved