文章

Unity 入门之 C# 语言

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

static

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

1
2
3
4
5
6
7
8
9
public class MyClass
{
    public static int InstanceCount { get; private set; } // 只能在本类中修改 InstanceCount 值,外部只能访问

    public MyClass()
    {
        InstanceCount++;
    }
}

abstract

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

1
2
3
4
5
6
7
8
9
10
11
12
public abstract class Animal
{
    public abstract void Speak();
}

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

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

abstract 和 virtual 的区别

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

C# 常用关键字

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


转自

  • https://blog.csdn.net/qq_16558821/article/details/131913186
  • https://blog.csdn.net/qq_50571974/article/details/129602760
  • https://blog.csdn.net/qqrrjj2011/article/details/136669520
本文由作者按照 CC BY 4.0 进行授权