属性类似于一个有返回值方法的变量 属性有一个优点,当类内部发生改变时,外部可以不受到任何影响。 例如有一个需求,学生的年龄不是录入而是需要根据生日年份自动计算。判断如果学生年龄大于18岁,则判定为成人。这里用成员变量无法满足,用属性可以。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Demo : MonoBehaviour
{
void Start()
{
Student student = new Student()
{
birthdayYear = 2000
};
Debug.Log("学生年龄 = " + student.age);
Debug.Log("学生是否成人 = " + student.isAdult);
}
}
public class Student : MonoBehaviour
{
public int birthdayYear;
public bool isAdult = false;
public int age
{
get
{
return DateTime.Now.Year - birthdayYear;
}
set
{
if (value >= 18)
{
isAdult = true;
}
}
}
}
|