C# 是一种面向对象的编程语言,其核心语法围绕着类和对象展开。类是抽象的概念,用于描述具有相似属性和行为的对象集合。在C#中,类是通过定义字段、方法和其他特性来构建的。
1. **字段**:字段是类中的变量,用于存储对象的属性和状态。字段可以分为两种类型:静态字段和实例字段。静态字段是共享的,无论创建多少个类的实例,它们都只有一个副本,可通过类名直接访问。实例字段则与每个对象实例关联,每个实例都有其独立的副本。
2. **方法**:方法描述了对象的行为,是一组完成特定任务的语句集合。方法的定义包括返回类型、方法名、参数列表和方法体。返回类型指定了方法执行后返回的数据类型,如果方法不返回值,返回类型为void。方法签名由方法名和参数列表构成,必须在类内保持唯一。
3. **类的实例化**:使用`new`关键字创建类的实例,如`Car car1 = new Car();`。这会在内存中分配空间并初始化对象,使得可以访问和修改其字段,调用其方法。
4. **访问修饰符**:C#提供了四种主要的访问级别,控制类成员的可见性。`public`成员在任何地方都可以访问,`private`成员仅限于类内部,`protected`成员对本类和子类可见,`internal`成员仅限于同一程序集内。这些修饰符用于封装和信息隐藏,以提高代码的安全性和可维护性。
5. **构造函数**:虽然在提供的内容中未提及,但构造函数是C#中类的重要组成部分,用于初始化新创建的对象。默认构造函数(无参数)自动提供,也可以自定义带参数的构造函数来设置初始状态。
6. **方法调用**:通过类的实例调用实例方法,如`car1.Run()`;静态方法通过类名调用,如`Duck.d1.Quack()`。实例方法可以访问类的静态和实例成员,而静态方法只能访问静态成员。
7. **属性(Property)**:虽然例子中没有使用,但C#推荐使用属性来替代公共字段,因为属性提供了数据访问的封装,可以添加额外的逻辑,如验证或计算。
8. **继承**:C#支持类的继承,子类可以继承父类的字段和方法,扩展或重写父类的行为,实现代码复用。
9. **接口(Interface)**:接口定义了一组方法签名,类可以实现多个接口,强制实现接口中所有方法,实现多态性。
10. **访问器(Accessors)**:属性通常由getter和setter访问器组成,getter允许获取属性值,setter允许设置属性值。可以通过访问器实现只读或只写的属性。
11. **虚方法和重写(Virtual and Override)**:通过将方法标记为`virtual`,子类可以使用`override`关键字重写父类的方法,实现多态行为。
理解并熟练运用这些核心概念是掌握C#编程的基础,通过编写和理解类、对象、字段、方法以及访问修饰符,你可以创建复杂且可维护的软件系统。在实际开发中,还会涉及到更多高级特性和设计模式,如泛型、委托、事件、异步编程等,这些都是C#强大功能的一部分。