| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2228 人关注过本帖
标题:静态属性
只看楼主 加入收藏
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
结帖率:78.99%
收藏
已结贴  问题点数:1 回复次数:6 
静态属性
请大虾们帮帮忙啊~~~~~~~~~
代码如下:
    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
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
收藏
得分:0 
value在有些情况下(这里)是一个关键字,而不是一个变量,代表用户要设定的值。
有的语言调用静态方法可以用类调用,也可能用对像来调用,C#中只能用类来调用,可以使语言结构更加精晰,不致于引起歧义.

QQ:81704464
2009-10-19 13:57
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:1 
1>value代表对应属性的类型的一个引用或者一个值。也就是说,value可以匹配你的属性类型。一般写属性器里都会用到这个关键字。
2>在没有静态构造函数的情况下,系统会自动调用静态构造函数。值类型像int直接就赋值为0,引用类型赋值为null.
3>MyValue不是一个方法,而是一个属性。因为它是静态的。也就是说不用通过实例化进行访问,直接可以通过类访问。
2009-10-19 16:03
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
收藏
得分:0 
同学多看看书吧,基础太薄了..

自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2009-10-19 18:12
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
收藏
得分:0 
1.值是 10
2.静态变量并没有初始化 ,默认为 0
3. 静态方法不需要创建对象,直接用类名来调用
2009-10-19 22:55
xudongcsharp
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:129
专家分:156
注 册:2009-5-31
收藏
得分:0 
3楼正解。。。。
建议楼主多看看面向对象的基础吧~!
2009-10-20 08:42
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.019087 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved