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

一、故事背景

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;

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 19:30:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 19:30:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 19:30:04       82 阅读
  4. Python语言-面向对象

    2023-12-06 19:30:04       91 阅读

热门阅读

  1. k8s有状态部署mysql主从(local pv持久化)

    2023-12-06 19:30:04       52 阅读
  2. http请求签名生成算法

    2023-12-06 19:30:04       66 阅读
  3. 利用pytorch实现卷积形式的ResNet

    2023-12-06 19:30:04       58 阅读
  4. linux守护进程示例

    2023-12-06 19:30:04       58 阅读
  5. C++EasyX之井字棋

    2023-12-06 19:30:04       63 阅读
  6. 装饰器基础知识

    2023-12-06 19:30:04       61 阅读
  7. 使用QT实现的RSS新闻阅读器

    2023-12-06 19:30:04       54 阅读
  8. cesium 之小问题大学问记录

    2023-12-06 19:30:04       70 阅读