C# 通俗讲解Public、Private以及Protected、[HideInInspector]、[SerializeField]的区别

2023-12-13 13:26:13
一、故事背景

1.我画了一幅画,把它放在室外,所有人都可以看见这个画,所有人都可以对这个画进行修改。

2.我非常非常努力,赚了一大笔钱,这笔钱,只能我和我的子孙后代用,但如果我的孩子需要传给他们的孩子,也可以用。

3.我娶了一个媳妇,她只是我的,不能给别人,也不能被自己的孩子继承(不要杠,杠就是你是对的!)

以上三种情况,我们在代码里也会遇见。


二、Public、Protected以及Private

如果我在一个代码里写了public int apple;

那么,这个apple是其他代码也可以调用到的,甚至可以更改。

如果我在一个代码里写了protected?int apple

那么,这个apple只能被现在这个代码和继承了自己的代码使用和更改。

如果我在一个代码里写了Private?int apple

那么,这个apple只能被现在这个代码使用和更改。

三、unity面板里的Public、Protected以及Private

如果你是在unity里写的,public和其他俩还有一个重要的区别,就是public是可以在面板里被看见的,其他两个不可以。

四、[HideInInspector]、[SerializeField]的区别

在上一条的情况下,我们在Unity里面使用,会出现新的需求:

1.(public)我还是愿意让所有代码都调用到,都可以修改,可是,我不想再面板上看见它。那就在代码上面加上[HideInInspector],意思是,在面板中隐藏

    [HideInInspector]
    public int apple = 10;

2.(Protected、Private)其他功能我想保持不变,可我希望能在面板上看见,在面板上改动它。

那就在代码上面加上[SerializeField],意思是,在面板中显示并可以操作

    [SerializeField]
    protected int apple2 = 10;

    [SerializeField]
    private int apple3 = 10;

文章来源:https://blog.csdn.net/weixin_49427945/article/details/134830002
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。