Unity--модификатор

Оглавление

1. общественный (публичный):

2. частный (частный):

3. защищенный (защищенный):   

4. Внутренний (внутренний):   

5. защищенный внутренний (защищенный внутренний):   

6. статический (статический):   

7. const (постоянная):   

8. реферат (аннотация):   

9. виртуальный (виртуальный):   

10. переопределить (переписать):    

11. запечатанный (запечатанный):   

12. только для чтения (только для чтения):   

13. летучий (изменяемый):    

14. внешний (внешний):   

15. событие (событие):    


В Unity для изменения классов, методов, переменных и свойств включены следующие модификаторы:

1. общественный (публичный):

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

   ⚠️: Модификатор `public` указывает, что элемент (переменная, метод, свойство и т. д.) является общедоступным и доступен из любого места.

2. частный (частный):

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

 ⚠️: Модификатор `private` означает, что к члену можно получить доступ только внутри класса, который его определяет, и другие классы не могут получить к нему прямой доступ.

3. защищенный (защищенный):
   

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

⚠️: модификатор «защищенный» означает, что к члену можно получить доступ внутри класса, в котором он определен, и в производных классах этого класса, но не напрямую в других классах.

4. Внутренний (внутренний):
   

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

⚠️: модификатор `internal` указывает, что член доступен в любом месте в той же сборке, но не виден для классов, которые не находятся в той же сборке.

5. защищенный внутренний (защищенный внутренний):
   

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

⚠️: Модификатор «защищенный внутренний» сочетает в себе поведение «защищенного» и «внутреннего», указывая, что к члену можно получить доступ в любом месте в той же сборке, а также в производных классах.

6. статический (статический):
   

    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. реферат (аннотация):
   

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

⚠️: модификатор abstract используется для объявления абстрактных классов и абстрактных методов. Абстрактные классы не могут быть созданы, только унаследованы. Абстрактные методы объявляются в абстрактном классе и должны быть реализованы в производных классах.

9. виртуальный (виртуальный):
   

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

⚠️: модификатор `virtual` используется для объявления виртуальных методов. Виртуальный метод можно переопределить (используя ключевое слово override) в производном классе, тем самым изменив его поведение.

10. переопределить (переписать):
    

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

⚠️: модификатор override используется для переопределения виртуального метода базового класса в производном классе. Переопределяющий метод должен иметь то же имя, тип возвращаемого значения и список параметров, что и метод базового класса.

11. запечатанный (запечатанный):
   

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

⚠️: модификатор `sealed` используется для предотвращения дальнейшего наследования или переопределения класса или метода производными классами. Классы с атрибутом «sealed» нельзя использовать в качестве базовых классов, а методы с атрибутом «sealed» нельзя переопределить.

12. только для чтения (только для чтения):
   

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

⚠️: модификатор `readonly` используется для объявления полей только для чтения. Значение поля только для чтения может быть инициализировано только во время объявления или в конструкторе и не может быть изменено впоследствии.

13. летучий (изменяемый):
    

      public class MyClass
      {
          public volatile bool flag;
      }

⚠️: модификатор volatile используется для объявления volatile полей. Доступ к изменчивым полям не будет оптимизирован компилятором для обеспечения правильного чтения и записи поля в многопоточной среде.

14. внешний (внешний):
   

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

⚠️: Модификатор extern используется для объявления внешних методов. Внешний метод — это функция, предоставляемая внешней библиотекой (например, динамической библиотекой).После объявления с помощью `extern` метод может быть вызван в коде C#.

15. событие (событие):
    

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

⚠️: Модификатор `event` используется для объявления событий. События — это особый вид делегирования, который позволяет классам уведомлять другие классы о событиях, происходящих при определенных обстоятельствах.

Guess you like

Origin blog.csdn.net/lalate/article/details/131634728