码迷,mamicode.com
首页 > Windows程序 > 详细

C# 实体变量/类变量 static

时间:2015-10-30 12:09:51      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

今天在拜读Stoneniqiu【读书笔记】--代码整洁之道时,遇到一个词叫做"实体变量",原谅我如此无知吧,这么基础的东西到现在都不清楚,汗颜。于是就迅速去看看这个变量到底是什么玩意儿……

实体变量(实例变量),说道这个东东,就得说说类变量(静态变量)。

先看个类:

    public class ExampleVariable
    {
        public static int Num1 { get; set; }
        public int Num2 { get; set; }


        public void ChangeNums(int n1,int n2)
        {
            Num1 = n1;
            this.Num2 = n2;
        }

        public int[] GetNums()
        {
            return new int[] { Num1, Num2 };
        }
    }

带static的Num1就是类变量,不带static的Num2就是实体变量了。那他们有什么区别呢?

   看一段小小的小代码:

  • 声明对象1,给2个变量分别赋值,显示对象1的变量数据;
  • 声明对象2,给2个变量分别赋值,分别显示对象1和对象2的变量数据;
        public MainWindow()
        {
            InitializeComponent();

            ExampleVariable example1 = new ExampleVariable();
            example1.ChangeNums(10, 11);
            int[] nums1 = example1.GetNums();
            tbk1.Text = string.Format("example1:Num1={0},Num2={1}", nums1[0], nums1[1]) ;//类中的static不属于任何对象
            tbk1.Text+= Environment.NewLine + Environment.NewLine;

            ExampleVariable example2 = new ExampleVariable();
            example2.ChangeNums(20, 21);

            nums1 = example1.GetNums();
            tbk1.Text += string.Format("example1:Num1={0},Num2={1}", nums1[0], nums1[1]) ;//类中的static不属于任何对象
            tbk1.Text+= Environment.NewLine ;

            int[] nums2 = example2.GetNums();
            tbk1.Text += string.Format("example2:Num1={0},Num2={1}", nums2[0], nums2[1]);//类中的static不属于任何对象
        }

 

运行结果:

技术分享

 

 

 

 

可以看出:

     ① 类中Num1不属于this指针,this.Num1这样的写法是不正确的;但是Num2是属于This的,完全可以this.Num2;

     ② Num1是static的,只能在类ExampleVariable中被使用,如果该类对象需要修改他的值,必须通过成员函数来实现,

         但是Num2完全可以在对象中直接调用:对象.Num2;

     ③ Num1属于整个类,所有对象对其只有1分拷贝。当对象2修改了Num1时,对象1的Num1也将改变,因为2个对象公用Num1,但是Num2就不会变化。

 

C# 实体变量/类变量 static

标签:

原文地址:http://www.cnblogs.com/YunGy/p/4922622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!