| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:关于 C# 静态与非静态的三个疑问?
只看楼主 加入收藏
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
结帖率:96.15%
收藏
已结贴  问题点数:15 回复次数:5 
关于 C# 静态与非静态的三个疑问?
关于C#静态与非静态的三个疑问?

    近来,我看书看到C#静态与非静态(实例),因为书本上阐述的比较简单,也比较少,所以,在此求教各位大侠三个疑问?
    (1)C#静态变量和实例变量的定义和区别?
    (2)C#静态属性和实例属性的定义和区别?
    (3)C#静态方法和实例方法的定义和区别?

    求助大侠,希望大侠们对这三个疑问,通过例子(代码举例)做一解答。这三个问题,困扰了我很多天了。在此,小虾先谢谢各位大侠了。
2014-06-19 09:12
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:5 
百度

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2014-06-19 10:21
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:5 
主要区别还是在内存上 静态的GC是不管的 它始终是在一块内存上 只有程序关闭了 才会释放
实例化的是在多个内存 GC帮忙释放

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2014-06-19 10:22
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
感谢信 (1)
-----------
感谢wangnannan的帮助,在此,小虾做点说明:
1、我曾经百度过,所得到的资料,还是解决不了我的疑惑;
2、静态变量,静态属性,静态方法,与 实例变量,实例属性,实例方法,主要百度的资料中没有清晰的解答,所以还是很困惑;

艰难地走在C#自学的路上…………
2014-06-19 13:52
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
百度后找到两个例子,请大侠们看看,我的理解是否正确?
(1)静态变量和实例变量
    class Test
    {
        public static int stal = 10;//定义静态变量
        public int a2 = 10;//定义实例变量
    }
   class Program
    {
        static void Main(string[] args)
        {
            Test A, B;//定义类的变量
            A = new Test();//创建类的实例A
            B = new Test();//创建类的实例B
            Console.WriteLine("Test.stal={0},\tA.a2={1},\tB.a2={2}",Test .stal ,A.a2 ,B.a2 );

            Test.stal = Test.stal + 10;//通过类名给静态变量赋值
            A.a2 = A.a2 + 10;//给实例A的成员A2赋值
            Console.WriteLine("Test.stal={0},\tA.a2={1},\tB.a2={2}", Test.stal, A.a2,B.a2);//输出静态变量和实例A的成员a2的值


            Test.stal = Test.stal + 10;//通过类名给静态变量赋值
            B.a2 = B.a2 + 20;//给实例B的成员赋值

            Console.WriteLine("Test.stal={0},\tA.a2={1},\tB.a2={1}", Test.stal, A.a2, B.a2);//输出静态变量和实例B的成员a2的值

            Console.ReadLine();
            
        }
    }

(2)静态方法和实例方法
    class MyClass  
        {  
          public static int Add(int x, int y)  
          {  
              return x + y;  
          }
          public int Bdd(int x, int y)
          {
              return x - y;
          }
        }  
   
        class Program  
        {  
            static void Main(string[] args)  
            {  
                int i = MyClass.Add(7, 11);   //调用静态方法  
                Console.WriteLine(i);

                MyClass ok = new MyClass();  //类实例化
                int k = ok.Bdd(7, 11);  //调用非静态方法
                Console.WriteLine(k);


                Console.ReadKey();  
            }  
(3)静态属性和实例属性,没有找到,哪位大侠提供个例子?

艰难地走在C#自学的路上…………
2014-06-19 14:25
asdfv63
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:38
专家分:142
注 册:2013-4-15
收藏
得分:5 
静态是所有对象共有的。实例就是各个对象独有的。
2014-06-19 16:08
快速回复:关于 C# 静态与非静态的三个疑问?
数据加载中...
 
   



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

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