☰分类导航

软件工程/C#基础与语法
课程进度 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();
类对象属性方法封装继承