课程进度 21% · 第3/10章第3/10章 · 标签 1/7
— 1 —
基本语法与数据类型
原事件声明需要放在类内,多个类与顶级语句的示例需按独立片段组织;Student与Person是教学模型。新增内容解释引用、延迟执行和异步边界,不把片段混拼为一个可直接运行文件。
C#是强类型语言,支持多种基本数据类型。变量在使用前必须先声明类型。
强类型限制操作的形式,不能自动限制所有业务值。成绩能存入int仍可能超出零到一百,非空string仍可能全是空格。把规范化和校验放在明确入口,并用固定边界输入测试,才能从“能编译”走向“对象始终满足规则”。
```csharp int a = 10; string name = "Tom"; bool isActive = true; double price = 99.99; char grade = 'A'; // 常量定义 const double PI = 3.14159; // 类型推断 var message = "Hello C#"; ```
csharp
1
int a = 10;
2
string name = "Tom";
3
bool isActive = true;
4
double price = 99.99;
5
char grade = 'A';
6
7
// 常量定义
8
const double PI = 3.14159;
9
10
// 类型推断
11
var message = "Hello C#";
📖var 关键字用于隐式类型推断,变量类型由编译器根据初始值确定
— 2 —
面向对象编程
C#是面向对象的语言,核心概念包括类、对象、封装、继承和多态。
对象变量赋值可能复制引用而非复制实体,多个变量修改同一对象会互相可见。继承需要满足可替换关系,复用逻辑也可通过组合实现;先明确身份、状态和职责,再选择类层次,避免为了演示面向对象而制造无必要的继承链。
```csharp
public class Person {
public string Name { get; set; }
public int Age { get; set; }
public void SayHello() {
Console.WriteLine($"Hello, {Name}");
}
}
// 使用
var p = new Person { Name = "Tom", Age = 20 };
p.SayHello();
```
csharp
1
public class Person {
2
public string Name { get; set; }
3
public int Age { get; set; }
4
5
public void SayHello() {
6
Console.WriteLine($"Hello, {Name}");
7
}
8
}
9
10
// 使用
11
var p = new Person { Name = "Tom", Age = 20 };
12
p.SayHello();
类对象属性方法封装继承