位置:首页 > C# > C#属性Property用法详解与语法入门

C#属性Property用法详解与语法入门

时间:2026-08-15  |  作者:夜鞌不睡  |  阅读:0

属性(Property)属于类(class)、结构体(structure)和接口(interface)的成员。类或结构体里定义的成员变量通常叫字段,而属性可以理解为字段的一层对外扩展:借助访问器(accessors),既能读取私有字段的值,也能对它们进行写入。

属性本身并没有明确的内存存储位置,它依赖的是可读、可写,或者可参与计算的访问器。比如有一个名为 Student 的类,里面包含 age、name 和 code 这 3 个私有字段。类的外部不能直接碰这些字段,但完全可以通过对应的属性来访问它们。

访问器

属性访问器主要有两种:get 访问器和 set 访问器。前者负责返回属性值,后者负责给属性赋新值。声明属性时,可以只写其中一个访问器,也可以把两个都写上,下面就是一个典型示例:
// 声明 string 类型的 Code 属性
public string Code {
   get {
      return code;
   }
   set {
      code = value;
   }
}

// 声明 string 类型的 Name 属性
public string Name {
   get {
      return name;
   }
   set {
      name = value;
   }
}

// 声明 int 类型的 Age 属性
public int Age {
   get {
      return age;
   }
   set {
      age = value;
   }
}
【示例】下面通过一个具体示例来看属性是怎么使用的。
using System;

namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args) 
        {
            // 创建一个新的 Student 对象
            Student s = new Student();

            // 设置 student 的 code、name 和 age
            s.Code = "001";
            s.Name = "Zara";
            s.Age = 9;
            Console.WriteLine("学生信息: {0}", s);
            // 增加年龄
            s.Age += 1;
            Console.WriteLine("学生信息: {0}", s);
            Console.ReadKey();
        }
    }
    class Student
    {
        private string code = "N.A";
        private string name = "not known";
        private int age = 0;

        // 声明类型为 string 的 Code 属性
        public string Code
        {
            get
            {
                return code;
            }
            set
            {
                code = value;
            }
        }

        // 声明类型为 string 的 Name 属性
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        // 声明类型为 int 的 Age 属性
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                age = value;
            }
        }
        public override string ToString()
        {
            return "编号 = " + Code +", 姓名 = " + Name + ", 年龄 = " + Age;
        }
    }
}
运行结果如下:

学生信息: 编号 = 001, 姓名 = Zara, 年龄 = 9
学生信息: 编号 = 001, 姓名 = Zara, 年龄 = 10

C#属性(Property)

抽象属性

抽象类中可以拥有抽象属性,这些属性会在派生类中实现,下面就通过一个示例来演示一下:
using System;

namespace c.biancheng.net
{
    class Demo
    {
        static void Main(string[] args) 
        {
            // 创建一个新的 Student 对象
            Student s = new Student();

            // 设置 student 的 code、name 和 age
            s.Code = "001";
            s.Name = "Zara";
            s.Age = 9;
            Console.WriteLine("学生信息: {0}", s);
            // 增加年龄
            s.Age += 1;
            Console.WriteLine("学生信息: {0}", s);
            Console.ReadKey();
        }
    }
    public abstract class Person
    {
        public abstract string Name
        {
            get;
            set;
        }
        public abstract int Age
        {
            get;
            set;
        }
    }
    class Student
    {
        private string code = "N.A";
        private string name = "not known";
        private int age = 0;

        // 声明类型为 string 的 Code 属性
        public string Code
        {
            get
            {
                return code;
            }
            set
            {
                code = value;
            }
        }

        // 声明类型为 string 的 Name 属性
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        // 声明类型为 int 的 Age 属性
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                age = value;
            }
        }
        public override string ToString()
        {
            return "编号 = " + Code +", 姓名 = " + Name + ", 年龄 = " + Age;
        }
    }
}
运行结果如下:

学生信息: 编号 = 001, 姓名 = Zara, 年龄 = 9
学生信息: 编号 = 001, 姓名 = Zara, 年龄 = 10

相关文章

  • C#类属性用法汇总
  • C#获取字符串长度(Length属性)
  • C#获取指定位置的字符(Chars属性)
  • C#中的字段和属性(附带实例)
  • C# get和set访问器:获取和设置字段(属性)的值
  • C语言的优点和缺点
  • C89(C90)、C99、C11——C语言的三套标准
  • C++构造函数(从本质上理解)
  • C++对象数组中使用构造函数
  • C++拷贝构造函数(复制构造函数)详解

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多