【C#/Unity】static、const、abstract 关键字的具体说明和使用示例,及C#常用定义成员访问级别关键字说明

关键字具体说明和使用示例

static

  • static 关键字可以用来声明静态成员,这些成员不属于类的某个实例,而是属于类本身。静态成员在类的所有实例之间共享。例如,如果想要计算你创建了多少个特定类型的对象,可以使用静态成员:

    public class MyClass
    {
          
          
        public static int InstanceCount {
          
           get; private set; }
    
        public MyClass()
        {
          
          
            InstanceCount++;
        }
    }
    

    在这个例子中,每当创建一个 MyClass 的新实例,InstanceCount 就会增加。可以通过 MyClass.InstanceCount 来访问这个成员,无需创建 MyClass 的实例。


const

  • const 关键字用于声明常数,这些常数的值在编译时被设置,并且不能改变。常数常常被用于保存程序中不会改变的值。例如:

    public class MyClass
    {
          
          
        public const double Pi = 3.14159;
    }
    

    在这个例子中,Pi 被声明为一个常数,其值为 3.14159,并且不能被修改。


abstract

  • abstract 关键字用于声明抽象类或抽象成员。抽象类是不能直接实例化的类,只能被继承。抽象成员是只有声明没有实现的成员,必须在派生类中实现。例如:

    public abstract class Animal
    {
          
          
        public abstract void Speak();
    }
    
    public class Dog : Animal
    {
          
          
        public override void Speak()
        {
          
          
            Console.WriteLine("Woof");
        }
    }
    

    在这个例子中,Animal 类是一个抽象类,Speak 是一个抽象方法。在 Dog 类中,我们覆盖了 Speak 方法,提供了它的具体实现。

TIPS:用override覆写 abstractvirtual 的区别:

  • 如上所示,当覆写一个abstract 方法时,必须提供一个具体的实现,因为 abstract 方法在基类中没有任何实现。
  • 但是,当覆写一个 virtual 方法时,我们却可以改变该方法在基类中的行为。因为virtual方法在基类中已经有一个默认的实现,但是也可以在派生类中提供一个新的实现。如果你在派生类中不覆写 virtual 方法,那么该方法将保持基类中的行为。

附录

C#常用定义成员访问级别关键字

  • public: public关键字表示该成员可以在任何地方被访问。
  • private: private关键词表示该成员只能在定义它的类中被访问。
  • protected: protected关键词表示该成员可以在定义它的类以及该类的派生类中被访问。
  • internal: internal关键词表示该成员可以在同一个程序集中的任何类中被访问。
  • protected internal: protected internal关键词表示该成员可以在同一个程序集中的任何类以及定义它的类的派生类中被访问。
  • static: static关键词表示该成员是属于类本身的,而不是类的实例。
  • const: const关键词表示该成员的值在编译时就已经确定,并且不能被修改。
  • readonly: readonly关键词表示该成员的值只能在声明时或在构造函数中被赋值,之后就不能被修改。
  • abstract: abstract关键词表示该成员是一个抽象成员,必须在派生类中实现。
  • virtual: 在C#中,virtual关键词用于标记一个方法、属性、索引器或事件,表示它可以在派生类中被覆盖。如果一个方法被标记为 virtual,那么在派生类中可以使用 override 关键词来改变这个方法的行为。
  • override: override关键词用于覆盖继承自基类的 virtual 成员。当你想在派生类中改变 virtual 成员的行为时,可以使用 override 关键词。
  • sealed: sealed关键词表示该成员不能被覆盖,如果用于类,表示该类不能被继承。

猜你喜欢

转载自blog.csdn.net/qq_16558821/article/details/131913186
今日推荐