青岛港湾职业技术学院 · 2025~2026 学年第二学期
授课计划
25软件1、2班 · 共 72 学时 · 授课教师 李令臣
教学目的与要求
本课介绍使用C#编程语言进行面向对象的方法,介绍面向对象概念的实现,并讲述如何使用C#实现抽象、封装、多态和继承。
完成该课程学生能够利用C#创建类,描述面向对象,定义抽象,实现结构、枚举、数组和集合,识别构造函数和析构函数的需要,实现继承、多态、重载。使用现实世界中的例子描述各种类型的关系,并能够利用C#中的流类进行文件的读写,数据库应用开发,识别Visual Studio.NET框架的组成和集成化开发环境(IDE)。
重点与难点
利用C#创建类,描述面向对象,定义抽象,实现结构、枚举、数组和集合,识别构造函数和析构函数的需要,实现继承、多态、重载。使用现实世界中的例子描述各种类型的关系,并能够利用C#中的流类进行文件的读写,数据库操作。
教学进程
按菜鸟教程 C# 的章节顺序安排,每周后面是这一周要看的短片,课前预习、课后复习都可以用。
- 第 1 周3月9日 – 3月15日
简介、开发环境、程序结构、基本语法
C# 是谁做的面向对象C# 能做什么C# 和 .NET和别的语言比适合初学者吗核心功能要装哪两样C# 和 .NET 各管什么.NET SDK检查装好没有选一个编辑器跑第一个程序macOS 和 Linux程序由哪几块组成using 和命名空间类和 Main 方法注释和语句四条规矩在 Visual Studio 里运行在命令行里运行类和对象using 关键字class 和注释字段和方法用 new 造对象标识符关键字顶级语句
- 第 2 周3月16日 – 3月22日
数据类型、类型转换、变量
三种类型值类型十三种值类型默认值放不下就报错sizeof引用类型objectdynamicstring指针类型类型转换是什么隐式转换显式转换Convert 类注意事项Convert、Parse 和 TryParse自定义类型转换变量是什么基本值类型dynamic 类型定义变量命名规则赋值先赋值再使用一个变量只有一个值让用户输入lvalue 和 rvalue
- 第 3 周3月23日 – 3月29日
变量作用域、常量、运算符
作用域管什么局部变量块级作用域方法参数成员变量静态变量循环变量常量是什么整数常量浮点常量字符常量字符串常量用 const 定义常量const 和 readonly运算符是什么算术运算符自增和自减关系运算符逻辑运算符位运算符赋值运算符其他运算符运算符优先级
- 第 4 周3月30日 – 4月5日
判断、循环
判断结构if 语句if...else 语句else if:好几种情况嵌套 ifswitch 语句嵌套 switchNull 条件运算符 ?.条件运算符 ?:为什么要循环while 循环do...while 循环for 循环foreach 循环嵌套循环循环体里的变量break:结束整个循环continue:跳过这一圈无限循环
- 第 5 周4月6日 – 4月12日
封装、方法、可空类型
封装是什么抽象与访问修饰符public:外面都能访问private:只有这个类自己能访问protected:自己和子类能访问internal:同一个程序集能访问protected internal方法是什么定义方法调用方法三种传参方式递归默认参数和命名参数表达式体方法方法重载值类型不能为空可空类型 int?HasValue 和 Value? 和 ??默认值:局部变量要先赋值声明可空变量完整示例:打印可空变量空合并运算符 ??常用成员实际场景可空引用类型
- 第 6 周4月13日 – 4月19日
数组、字符串
数组是什么声明数组用 new 创建数组给元素赋值声明的同时赋值把数组赋给另一个数组变量默认值访问数组元素用 foreach 遍历数组数组的更多概念字符串是什么创建字符串两个属性:Length 和索引不可变方法分六组比较连接查找生成新字符串拆分和字符数组其他方法取子字符串
- 第 7 周4月20日 – 4月26日
结构体、枚举、类
结构体是什么定义结构体结构体的特点类和结构体枚举是什么声明枚举成员的值:默认从 0 开始自己指定成员的值枚举变量枚举是值类型枚举不能继承类是什么类的定义成员函数和封装构造函数析构函数静态成员
- 第 8 周4月27日 – 5月3日
继承、多态性、运算符重载
什么是继承基类和派生类private 成员也会被继承基类的初始化继承接口多重继承多态是什么静态多态和动态多态静态多态:函数重载参数类型不同也是重载只有返回类型不同,不能重载动态多态:抽象类抽象类的规则虚方法忘了写 override先试试:两个盒子能直接相加吗运算符重载怎么写完整程序哪些运算符能重载哪些不能重载
- 第 9 周5月4日 – 5月10日
接口、命名空间、预处理器指令
接口是什么定义接口实现接口接口继承默认实现(C# 8 起)接口和抽象类命名空间是什么定义命名空间using 关键字嵌套命名空间预处理器指令是什么两条写法规矩指令分四组#define 和 #undef条件编译:#if、#elif、#else、#endif#warning 和 #error#region 和 #endregion#line#pragma#nullable使用建议
- 第 10 周5月11日 – 5月17日
正则表达式
正则表达式是什么字符转义字符类定位点分组构造限定符反向引用、备用构造替换、杂项构造Regex 类的常用方法GeneratedRegex
- 第 11 周5月18日 – 5月24日
异常处理、文件的输入与输出
什么是异常try、catch、finally异常类自定义异常抛出对象文件和流System.IO 里的类FileStreamFileMode:怎么打开FileAccess:能读还是能写FileShare:让不让别人同时打开进一步的内容
- 第 12 周5月25日 – 5月31日
特性、反射
特性是什么语法预定义特性自定义特性反射是什么四层结构用反射造对象、调方法优点和缺点反射的四种用途读出特性读出类上的 DeBugInfo遍历方法时崩了修法:只取 DeBugInfo
- 第 13 周6月1日 – 6月7日
属性、索引器、委托
属性是什么基本语法自动实现的属性只读属性只写属性在 set 里加检查计算属性访问器抽象属性索引器是什么语法一维索引器它不是真数组重载索引器查不到和越界多个参数委托是什么声明委托创建委托并调用多播委托当参数:回调用 -= 移除委托和事件现成的委托注意事项
- 第 14 周6月8日 – 6月14日
事件、集合、泛型
事件是什么声明事件没人订阅时直接调用在类外面直接触发用 -= 取消订阅事件不是线程通信集合是什么相同的用法元素按 object 存放命名空间要写对动态数组 ArrayList哈希表 Hashtable排序列表 SortedList堆栈 Stack队列 Queue点阵列 BitArray泛型是什么泛型类类型安全泛型的特点运行时查泛型类型泛型方法约束 where泛型委托
- 第 15 周6月15日 – 6月21日
实训周
- 第 16 周6月22日 – 6月28日
匿名方法、不安全代码、多线程
匿名方法是什么Lambda 表达式用 delegate 写匿名方法改用 Lambda 来写什么是不安全代码指针是什么一句声明多个指针取地址取值和 ->指针作方法参数用指针访问数组编译不安全代码stackalloc线程是什么线程的生命周期主线程Thread 的属性Thread 的方法创建线程管理线程:Sleep销毁线程协作式取消:CancellationToken
- 第 17 周6月29日 – 7月5日
数据库应用开发
连接和关闭数据库——SqlConnectionSqlCommand类SqlDataReader类SqlDataAdapterDataSet / DataTable
短片制作中 - 第 18 周7月6日 – 7月12日
项目:新闻发布平台
需求与数据库设计管理员登录发布新闻
短片制作中 - 第 19 周7月13日 – 7月19日
项目:新闻发布平台(续)
修改与删除新闻按分类浏览按标题搜索
短片制作中
