C# 属性

发布于:2025-07-23 ⋅ 阅读:(16) ⋅ 点赞:(0)

1.定义属性需要名字和返回值
2.属性分为两块 get块(获取)set块(设置)
3.访问属性和访问字段是一样的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _属性
{
    internal class Student
    {
        public string name;
        public int age;
        private int id;

        //定义属性
        // 使用属性也可以 访问和设置带有权限的数据字段
        public int Id
        {
            // 访问
            get 
            { 
                return id; 
            }
            set
            {
                // = 值  就是有value来代替的
                id = value;
            }
        }

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


        //只读
        //public int Age
        //{
        //    get
        //    {
        //        return age;
        //    }
        //}
        //只写
        //public int Age
        //{
        //    set
        //    {
        //        age = value;
        //    }
        //}
        //private string addres;
        //public string Addres { get => addres; set => addres = value; }

        //以上方式写法比较复杂  c#提供了一种语法糖 可以简化写法
        public string Addres { get; set; }

        //"12345678910" 就是Phone的默认值
        public string Phone { get; set; } = "12345678910";


    }
}
static void Main(string[] args)
{
Student stu = new Student();
stu.name = "李四";
//stu.id = 123465;  // 正常访问私有数据是没有权限的
//使用属性
//通过属性设置或访问数据  使用的时候把它当做一个普通的数据成员一样使用 并不是函数调用 
//设置   = 值 调用set
stu.Id = 123456;
// 访问 直接对象名.属性名
Console.WriteLine(stu.Id);

stu.Name = "王五";
Console.WriteLine(stu.Name);

//stu.Age = 20; //因为是只读的  没有办法设置
//Console.WriteLine(stu.Age);

stu.Addres = "河南省";
Console.WriteLine(stu.Addres);
Console.WriteLine(stu.Phone);
}

使用枚举控制字段的取值范围

static void Main(string[] args)
{
    Dog dog = new Dog("阿黄");
    //dog.Name = "阿黄";
    Console.WriteLine(dog.Name);
    dog.Color = Dog.Ecolor.黑;

    Console.WriteLine(dog.Color);
    dog.Color = Dog.Ecolor.黄;
}
 class Dog
 {
     public string Name { get; set; }

     private int age;
     public Dog(string Name)
     {
         this.Name = Name;
     }

     public int Age { get => age; set => age = value; }

     //定义一个颜色的枚举Ecolor
     public enum Ecolor
     {
         白,黑,黄,灰,花
     }
     
     //三种定义字段方式
     //public Ecolor color;

     //public Ecolor Color
     //{
     //    get
     //    {
     //       return color;
     //    }
     //    set
     //    {
     //        color = value;
     //    }
     //}

     //同上 
     public Ecolor Color { get; set; }

 }

网站公告

今日签到

点亮在社区的每一天
去签到