分享

C# 字段和属性

 飞鸿踏雪泥f1rd 2019-05-15

什么是字段?

一般吧类或结构中定义的变量和常量叫字段。

字段分为:静态字段,实例字段,常量字段和只读字段。

常量字段:用const修饰符声明的字段为常量,常量只能在声明中初始化,以后不能再修改。

静态字段:用修饰符static声明的字段为静态字段。不管包含该静态字段的类生成多少个对象或根本无对象,该字段都只有一个实例,静态字段不能被撤销,必须采用如下方法引用静态字段:类名.静态字段名。

实例字段:类中定义的字段不使用修饰符static,该字段为实例字段,每创建该类的一个对象,在对象内创建一个该字段实例,创建它的对象被撤销,该字段对象也被撤销,实例字段采用如下方法引用:实例名.实例字段名。

只读字段:只读字段是特殊的实例字段,它只能在字段声明中或构造函数中重新赋值,在其它任何地方都不能改变只读字段的值

示例:

  class Program
    {
        //常量字段
        public const int intMax = int.MaxValue;
        //静态字段
        public static int cnt = 0;
        //实例字段
        public int x = 0;
        //只读字段
        public readonly int y = 0;


        public static int aa;


        public Program()
        {
            y = 5000;
        }
        static void Main(string[] args)
        {
            Program p1 = new Program();
            Program p2 = new Program();
            Program.aa = 55;
            Console.WriteLine(Program.aa);
            Console.WriteLine(Program.intMax);
            Console.ReadKey();
        }
    }

什么是属性?

属性不是字段,本质上是定义修改字段的方法,属性定义了得到和修改相联系的字段的方法。

  class Person
    {
        private string _name = '张三';
        private int _age = 12;


        public void Display()
        {
            Console.WriteLine('姓名:{0},年龄:{1}', Name, Age);
        }


        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = value;
            }
        }


        public int Age
        {
            get
            {
                return _age;
            }
            set
            {
                _age = value;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Person onPerson = new Person();
            onPerson.Name = '张三';
            onPerson.Age = 50;
            onPerson.Display();
            //Console.WriteLine('');
            Console.ReadKey();
        }

    }

虽然属性和字段的使用方法类似,但是属性本质上是方法。因此不能把属性当做变量使用,一下使用变量的地方不能使用属性,例如,不能用属性作为函数的引用参数或输出参数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多