| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2228 人关注过本帖
标题:静态属性
取消只看楼主 加入收藏
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
结帖率:78.99%
收藏
已结贴  问题点数:1 回复次数:2 
静态属性
请大虾们帮帮忙啊~~~~~~~~~
代码如下:
    class Trivial
    {
        static int myValue;

        public static int MyValue
        {
            set { myValue = value; }
            get { return myValue; }
        }

        public void PrintValue()
        {
            Console.WriteLine("Value from inside:{0}", MyValue);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Init Value:{0}",Trivial.MyValue);
            Trivial.MyValue = 10;
            Console.WriteLine("NewsStyleUriParser Value:{0}",Trivial.MyValue);
            Trivial tr = new Trivial();
            tr.PrintValue();
            Console.ReadLine();
        }
    }

运行结果如下:
Init Value:0
New Value:10
Value from inside:10

问题:
<1>题目中出现的set { myValue = value; }中的value值是什么啊???
<2>之前我所定义到静态变量并没有初始化啊,为什么输出结果是0呢?
<3>为什么没有实例化Trivial这个类就能使用MyValue方法呢??
搜索更多相关主题的帖子: 属性 静态 
2009-10-19 13:17
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
收藏
得分:0 
1.值是 10
2.静态变量并没有初始化 ,默认为 0
3. 静态方法不需要创建对象,直接用类名来调用
2009-10-19 22:55
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
收藏
得分:0 
回复 3楼 zhoufeng1988
你好谢谢你的回答,但是您的答案我觉得有一点出入:
例子:
class Test
{
   static int a = b + 1;
   static int b = a + 1;
   static void Main() {
      Console.WriteLine("a = {0}, b = {1}", a, b);
   }
}

结果:
a = 1, b = 2

解释:
这是因为静态字段 a 和 b 在它们的初始值设定项执行之前被初始化为 0(int 的默认值)。当 a 的初始值设定项运行时,b 的值为零,所以 a 被初始化为 1。当 b 的初始值设定项运行时,a 的值已经为 1,因此 b 被初始化为 2。
2009-10-21 21:21
快速回复:静态属性
数据加载中...
 
   



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

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