📜  Unity范围和访问修饰符

📅  最后修改于: 2021-01-11 13:42:06             🧑  作者: Mango

范围和访问修饰符

变量的范围是代码中变量可以使用的区域。假定变量在代码中可以使用的位置局部。代码块通常定义变量的范围,并用花括号表示。

访问修饰符是关键字。这些修饰符用于指定成员或类型的声明的可访问性。 C#中有四个访问修饰符:

  • 上市
  • 受保护的
  • 内部
  • 私人的

可以在C#中使用访问修饰符指定以下六个可访问性级别:

public:在这种情况下,访问不受限制。

protected:这里,访问仅限于包含它的类。

内部:在这种情况下,访问仅限于当前程序集。

受保护的内部:此访问仅限于当前程序集。

专用:访问仅限于包含类型。

私有保护:为此访问仅限于包含类或从当前程序集中包含类派生的类型。

例:

在此示例中,该类中的所有内容都可以说是该类的本地内容。蜡笔,钢笔和答案变量均位于示例函数的本地,不能在外部使用。您会说变量beta,alpha和gamma在scope和access修饰符类的范围内。您会说,蜡笔,钢笔和答案变量在示例函数。

MyClass.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyClass
{
    public int apples;
    public int bananas;

    private int stapler;
    private int sellotape;

    public void FruitMachine(int a, int b)
    {
        int answer;
        answer = a + b;
        Debug.Log("Fruit total: " + answer);
    }

    private void OfficeSort(int a, int b)
    {
        int answer;
        answer = a + b;
        Debug.Log("Office Supplies total: " + answer);
    }
}

AccessModifiers.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AccessModifiers : MonoBehaviour
{
    public int alpha = 5;

    private int beta = 0;
    private int gamma = 5;

    private MyClass myOtherClass;

    void Start()
    {
        alpha = 29;

        myOtherClass = new MyClass();
        myOtherClass.FruitMachine(alpha, myOtherClass.apples);
    }

    void Example(int pens, int crayons)
    {
        int answer;
        answer = pens * crayons * alpha;
        Debug.Log(answer);
    }

    void Update()
    {
        Debug.Log("Alpha is set to: " + alpha);
    }
}

输出:

当您运行游戏时,您会看到公共变量alpha包含为您可以编辑的属性。这允许用户在运行游戏时编辑变量。例如,想象一下,该值控制着汽车的速度,并且能够在测试该变量而不必停车的情况下对其进行调整会很好。因此,将其设为公共变量是有意义的。



在这里,我在运行时将Alpha变量的值更改为67,然后输出为: