最近看了一些关于get、set方法的文章,然后自己也做个笔记,方便以后理解
下面我们就举例说明一下get 、set最简明的写法:
public string Str_1
{
get;
set;
}
get即是外界可以得到Str_1的这个值,set:即是外界可以修改Str_1的这个值,那么就有人问了:“我写get,set方法跟我直接写public的字段功能一样,为什么要设置get set方法呢?”
好,那我就简单说明一下问什么,为了后期的修改及维护及提高代码的安全性。
有时候你会发现写着代码写着代码你会发现这个“Str_1”的这个值我直接给它一个初始值就好了,也不用修改它,但是你又怕你那上千行的代码有修改“Str_1”的值(总不能再去检查一遍代码吧,这样既浪费时间又会耽误工作),这个时候如果你有写get,set方法那么就简单了你可以这样:
public string Str_1
{
get
{
return "小明";
}
}
直接把set去掉然后设置一个初始值变成只读的,也不用担心你的代码会有修改到它了。是不是这样写后期修改起来特别方便快捷呢。
好,我们再说一下另一种用法如下:
public string Str_2
{
get;
private set;
}
我们在set前面加了一个 private, private什么意思,是私有的,不公开的。这样写什么意思呢,就是说:我们可以从别的类获取到Str_2的这个值,但是想要修改这个值得话只能从本类修改,这样一说是不是提高了代码的安全性,再也不用担心别的类会乱动到这个值了。
好,我们再说一下另一种用法,我先把代码扔上去:
private string str_3;
public string Str_3 {
get
{
return str_3;
}
set
{
str_3 = value == "小狗变成了一条腿" ? "一条腿的小狗" : value;
Str_3_Name();
}
}
void Str_3_Name()
{
switch (str_3)
{
case "一条腿的小狗":
Debug.Log("一条腿的小狗,好可怜");
break;
case "二条腿的小狗":
Debug.Log("二条腿的小狗,好可怜");
break;
case "三条腿的小狗":
Debug.Log("三条腿的小狗,好可怜");
break;
case "四条腿的小狗":
Debug.Log("四条腿的小狗,好可爱");
break;
default:
Debug.Log("小狗小狗,汪汪汪");
break;
}
}
这样想要修改str_3的值,我们可以直接修改Str_3这样我们可以在“Str_3”set语句块中做一些操作,也可以做一些逻辑判断,如上述举例:我们可以直接修改str_3的值,但是看一下我们从Str_3里面修改的话可控性是不是会更好呢,每当我们从Str_3进行修改str_3值得时候都会经过Str_3的set语句块,然后我们可以在set语句块中做一些判断进而去准确修改str_3的值,并且每次修改值时都会调用“Str_3_Name()”方法(当然我们可以做一些别的操作,可以起到实时监控数据刷新的作用进而做一些别的操作),对了,
这里需要说一下value的类型在这里即代表string类型,上面声明的什么类型即是什么类型