C# 字段和属性

本文介绍了字段的概念及其分类,包括常量字段、静态字段、实例字段和只读字段,并通过示例进行了解释。同时,文章还阐述了属性的概念,解释了属性如何用于获取和设置字段值,以及属性与字段的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是字段?

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

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

常量字段:用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();
        }

    }

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值