unity--修饰符

目录

1. public(公共的):

2. private(私有的):

3. protected(受保护的):   

4. internal(内部的):   

5. protected internal(受保护的内部的):   

6. static(静态的):   

7. const(常量):   

8. abstract(抽象的):   

9. virtual(虚拟的):   

10. override(重写):    

11. sealed(密封的):   

12. readonly(只读的):   

13. volatile(易变的):    

14. extern(外部的):   

15. event(事件):    


Unity中,包含以下修改类、方法、变量和属性的修饰符:

1. public(公共的):

     public class MyClass
     {
         public int myVariable;
         
         public void MyMethod()
         {
             // Method body
         }
     }

   ⚠️:`public` 修饰符表示成员(变量、方法、属性等)是公共的,可以从任何位置访问。

2. private(私有的):

    public class MyClass
     {
         private int myVariable;
         
         private void MyMethod()
         {
             // Method body
         }
     }

 ⚠️:`private` 修饰符表示成员只能在定义它的类内部访问,其他类无法直接访问。

3. protected(受保护的):
   

    public class MyBaseClass
     {
         protected int myVariable;
         
         protected void MyMethod()
         {
             // Method body
         }
     }
     
     public class MyDerivedClass : MyBaseClass
     {
         void AnotherMethod()
         {
             myVariable = 10;  // 可以在派生类中访问基类的 protected 成员
             MyMethod();      // 可以在派生类中调用基类的 protected 方法
         }
     }

⚠️:`protected` 修饰符表示成员可以在定义它的类内部以及该类的派生类中访问,但无法在其他类中直接访问。

4. internal(内部的):
   

    internal class MyClass
     {
         internal int myVariable;
         
         internal void MyMethod()
         {
             // Method body
         }
     }

⚠️:`internal` 修饰符表示成员可以在同一程序集中的任何位置访问,但对于不在同一程序集中的类来说,该成员是不可见的。

5. protected internal(受保护的内部的):
   

    public class MyClass
     {
         protected internal int myVariable;
         
         protected internal void MyMethod()
         {
             // Method body
         }
     }

⚠️:`protected internal` 修饰符结合了 `protected` 和 `internal` 的行为,表示成员可以在同一程序集中的任何位置访问,也可以在派生类中访问。

6. static(静态的):
   

    public class MyClass
     {
         public static int myVariable;
         
         public static void MyMethod()
         {
             // Method body
         }
     }

⚠️:`static` 修饰符表示成员属于类本身,而不是类的实例。可以通过类名直接访问静态成员,无需创建类的实例。

7. const(常量):
   

    public class MyClass
     {
         public const float PI = 3.14159f;
     }

⚠️:`const` 修饰符用于声明常量,即一旦赋值后就不能更改的值。常量在声明时必须进行初始化,并且只能是基本数据类型或枚举类型。

8. abstract(抽象的):
   

    public abstract class MyBaseClass
     {
         public abstract void MyMethod();
     }
     
     public class MyDerivedClass : MyBaseClass
     {
         public override void MyMethod()
         {
             // Method body
         }
     }

⚠️:`abstract` 修饰符用于声明抽象类和抽象方法。抽象类不能被实例化,只能被继承。抽象方法在抽象类中声明,需要在派生类中实现。

9. virtual(虚拟的):
   

    public class MyBaseClass
     {
         public virtual void MyMethod()
         {
             // Method body
         }
     }
     
     public class MyDerivedClass : MyBaseClass
     {
         public override void MyMethod()
         {
             // Method body
         }
     }

⚠️:`virtual` 修饰符用于声明虚拟方法。虚拟方法可以在派生类中被重写(使用 `override` 关键字),从而改变其行为。

10. override(重写):
    

      public class MyBaseClass
      {
          public virtual void MyMethod()
          {
              // Method body
          }
      }
      
      public class MyDerivedClass : MyBaseClass
      {
          public override void MyMethod()
          {
              // Method body
          }
      }

⚠️:`override` 修饰符用于在派生类中重写基类的虚拟方法。重写方法必须具有与基类方法相同的名称、返回类型和参数列表。

11. sealed(密封的):
   

      public class MyBaseClass
      {
          public virtual void MyMethod()
          {
              // Method body
          }
      }
      
      public sealed class MyDerivedClass : MyBaseClass
      {
          public override void MyMethod()
          {
              // Method body
          }
      }

⚠️:`sealed` 修饰符用于防止派生类对某个类或方法进行进一步的继承或重写。使用 `sealed` 修饰的类不能作为基类,使用 `sealed` 修饰的方法不能被重写。

12. readonly(只读的):
   

      public class MyClass
      {
          public readonly int myVariable;
          
          public MyClass(int value)
          {
              myVariable = value;
          }
      }

⚠️:`readonly` 修饰符用于声明只读字段。只读字段的值只能在声明时或构造函数中进行初始化,之后无法修改。

13. volatile(易变的):
    

      public class MyClass
      {
          public volatile bool flag;
      }

⚠️:`volatile` 修饰符用于声明易变字段。易变字段的访问不会被编译器优化,确保在多线程环境下正确地读取和写入该字段。

14. extern(外部的):
   

      public class ExternalClass
      {
          [DllImport("myLibrary.dll")]
          public static extern void MyMethod();
      }

⚠️:`extern` 修饰符用于声明外部方法。外部方法是通过外部库(如动态链接库)提供的函数,使用 `extern` 声明后,可以在C#代码中调用该方法。

15. event(事件):
    

      public class EventExample
      {
          public event Action OnEvent;
          
          public void TriggerEvent()
          {
              if (OnEvent != null)
              {
                  OnEvent.Invoke();
              }
          }
      }

⚠️:`event` 修饰符用于声明事件。事件是一种特殊的委托,允许类通知其他类在特定情况下发生的事件。

猜你喜欢

转载自blog.csdn.net/lalate/article/details/131634728