|
第1章 【序章】关于C#,你需要了解得都在这里 5 节 | 36分钟
1 F2 B$ G, I: u( F' |6 n3 b# e* `; S在过去的几年里,随着微软.net平台的开源、以及unity游戏平台的兴起,c#程序开发产生了爆炸式的发展。现在,c#开发相关的生态已经非常完善了,而c#本身也一跃成为市场上最具有竞争力的编程语言之一。课程的第一章,我们简单了解一下课程大纲,初步认识C#和.Net平台,准备好我们的开发环境。…9 O1 p x: p9 I# [/ m
1-1 【前言】学C#还有前景么? (08:56)
1 V2 B3 ^" m0 l- A: Z1-2 【理论】C# vs Java (03:55)1 x- M: w5 B. c, z6 d U- `
1-3 【操作】开发环境搭建 (06:58)/ ^4 y+ a' W" K4 f- s
1-4 【理论】啥是CLI 啥是CLR (08:38)( X) Q$ L5 Z1 c7 ?
1-5 【理论】.NET 的前世今生 (07:27)7 e( @/ ~6 V& B5 a
0 K. ?2 t, w' W5 v* d Z3 G第2章 C# 基础语法13 节 | 98分钟* I" \4 r% d9 v, x$ R
本章我们来认识C#,学习它的基础语法,掌握变量、数据类型、参数、决策、分支等重要概念。6 H- D- |0 f# ]! x# j2 x
2-1 【学前思考题】带着问题来学习6 I! Q( H1 Y8 ]
2-2 【理论】hello world 项目剖析 (04:38)9 g0 ]3 ^3 E- w+ f0 {6 @( k
2-3 【操作】控制台IO System.Console v2 (06:06)
) d. P3 A9 r& x" n' q& @2-4 【理论】变量与数据类型 (09:36)
: x- X9 t! ^. U: c; X+ N2 @2-5 【理论】基本数据类型 (07:29)0 ^; @* |# B& o
2-6 【操作】字符串方法与操作 (11:10)
* Y3 e d) k) r0 |8 |* n% [' y2-7 【理论】决策与分支 (06:54)
$ U! B& ~: o0 ?0 g; Y2-8 【实战】用户登陆 (if switch) (07:03)! O1 h% f5 e5 {& E0 u! W
2-9 【理论】程序循环 (09:14)
7 \1 s3 K+ f: a3 `& i) N& P! F2-10 【实战】完成用户登陆流程 (循环) (05:43)
8 }' C1 q4 l+ P) I* i$ R2-11 【理论】什么是方法 (13:41) Q6 o# f& z' N
2-12 【实战】函数化用户登陆过程 (08:42)
9 o; _; ]8 q( g4 d# U* R2 Z2-13 【操作】值传参 vs 引用传参 vs 输出传参 (06:59)
3 c+ X, o; u# M) h% j
3 ?* V& {1 m. D! U: a" k% C第3章 面向对象:入门 12 节 | 82分钟/ a* o6 Z& t% N9 F4 o% g
本章我们会学习类与对象的基本概念,同时还会学习各种相关的设计模式,并配合大量实际工作中的案例,掌握对象的聚合、类的构造方法、访问修饰符、字段、属性等知识点。
# g$ \/ h$ S) r- O+ S3 E3-1 【学前思考题】带着问题来学习9 f: ]7 }* L4 |
3-2 【理论】什么是面向对象 (10:38)
" [7 t( Q* B/ f& {3-3 【拓展】对象与内存管理
' P2 I$ Y) J4 h9 x* {2 ^2 h3-4 【操作】类class与实例instance (07:14)
$ I3 G/ E* B! l; h- L3-5 【操作】对象聚合 Cohesion (05:34)
R% b" F/ v; T7 l) a1 o/ Q3-6 【操作】构造方法与方法重载 (07:18)$ s& A( g9 h( }/ Z; }
3-7 【理论】访问修饰符 (03:46)" _3 `* v4 @+ c" R) R2 b
3-8 【理论】字段、属性与对象封装 (12:28)
6 R/ w9 Z! a0 i3-9 【操作】const、readonly与writeonly (09:52)& r# c0 ^+ A$ t/ }8 z' E
3-10 【操作】索引(Index)和范围(Range) (10:10)
% B, {5 c; z5 d6 r3-11 【操作】partial 类 (05:40)
" R. s- M( Z7 U% j3-12 【实战】用户管理 (09:12) p9 X" M' n3 E! x: b2 \* ~' `7 R: U2 Y3 u
- _% \/ d6 ?" ]/ m' o- l- |第4章 面向对象:继承与组合9 节 | 60分钟
% g7 c" g D3 ^+ [% R# {本章,我们来学习松耦合的设计思想,通过学习UML来掌握类之间的各种关系、掌握继承和组合,同时我们也会学习数据的装箱和拆箱。
$ J0 X9 B' j' _( P/ O4-1 【学前思考题】带着问题来学习
0 i4 w/ W0 \% }4 j3 R4-2 【理论】松耦合设计思想 (04:17)
; y5 p% G5 o" `" n4 H% M% K6 [4-3 【拓展】类关系与UML
: U' U1 Y9 Q4 k7 ]: x# u# }! F: a: ^4-4 【理论】继承 (07:31)+ u8 T2 h, k2 y% ]# P! E: r6 @
4-5 【理论】复合 (10:18)5 o& t$ G* ]8 A( V7 h0 z u5 c( p
4-6 【操作】访问修饰符(protected与internal) (09:15)+ n1 z( a3 @1 w& K/ s; Z
4-7 【操作】构造函数的继承 (06:47)
; X) z' j6 _( H; m4-8 【操作】向上转型与向下转型 (12:42)
4 c$ K+ q! a" ]) W: B' d4-9 【操作】装箱与拆箱 (08:38)# ?- ]' t) N. q8 q9 G( A. S* B
& K$ ]+ o, O, j/ ?& S+ X& A
第5章 面向对象:多态5 节 | 25分钟% U6 |. { ?# Z% P5 F3 {
彻底掌握C#的多态,学习如何利用虚方法和方法重写处理多态、如何使用抽象来隔离业务、如何使用sealed来封印对象。
) L+ ~' [9 a1 }) |8 [0 C, R5-1 【学前思考题】带着问题来学习
! I9 d1 @& C& X" A+ c# c5-2 【操作】虚方法与方法重写 (08:21)
+ r4 @. h) j) E" R5-3 【理论】什么是多态 (05:32)2 u# z' i1 D' Y9 _* t4 t
5-4 【理论】抽象类与抽象成员 (07:12): q% H" u9 J+ M& h: @
5-5 【理论】sealed类与sealed成员 (03:07)
6 |4 ^9 N* @6 X9 B- p+ O4 y( u7 b5 Y$ _ O6 K' T
第6章 面向对象:接口 12 节 | 104分钟9 J6 G3 m: n4 p `4 ]: e2 \, r# l
继续深化松耦合的设计思想,同时还会加入各种设计模式的学习、并配合大量实际工作中的案例来帮助同学们有效的掌握、依赖注入、IOC反转控制、面向接口编程、单元测试等一系列必备技能。
# @1 N6 `* H5 }1 v1 L6-1 【学前思考题】带着问题来学习
^1 t U+ e0 R. A& U& R6 o% f6-2 【理论】什么是接口 (07:22)
/ S: X0 C X; s/ m9 p" c6-3 【操作】接口代码实现 (12:18)
/ V' t( B# I# x6 F+ V5 |6-4 【操作】接口代码实战 (12:20)
, S4 K0 [# |: {- d6 W3 N: V- e6-5 【操作】接口与单元测试 (15:23)7 E* B# u/ j6 s0 B6 J- F
6-6 【拓展】TDD测试驱动开发
1 b; K2 Q/ \" N b2 y( V$ I" l* N6-7 【理论】反转控制与依赖注入 (09:43)
2 v5 h& @+ L5 a9 e4 @) C* o; Y, E6-8 【操作】反转控制与依赖注入 (14:59)
2 p. B1 J8 r( d+ u; R( G) p6-9 【拓展】Nuget项目管理 (04:17); Q9 y3 W1 e# ?3 A# Y
6-10 【操作】多重继承 vs 多重实现 (05:20)
+ y7 {6 R/ S3 j2 X6-11 【操作】接口与多态 (13:07)
& ^0 W" |0 w: j5 ~6-12 【实战】面向接口案例改造重构 (08:39)
' D$ M% c* k# E8 Q7 `
0 B+ y' K- S6 h, L: y" q0 {第7章 C# 高级编程11 节 | 102分钟
$ E% k3 W, o) f4 x8 w5 `: Y掌握C#的高级编程技巧,包括范型、空处理、方法拓展、动态、反射与元数据、枚举、异常处理等各种重要的知识点。, f% {/ C& D) f) i
7-1 【学前思考题】带着问题来学习
" y1 j- m3 O8 f# `# X, Q7-2 【操作】结构 Structs (08:30)
" V. z8 e( ?5 M2 o# |$ j$ T7-3 【操作】枚举 Enums (05:21)
- S( H' K% i+ ?+ n! k7-4 【操作】泛型入门 (08:10)
: R H( G, `: b* X+ d7-5 【操作】泛型进阶 (14:11)6 T- `) {: n& Z8 {0 u
7-6 【操作】空处理 Nullables (09:30)
^+ g" m* g9 x7-7 【操作】拓展方法 Extesion (04:31)
" {' e; z4 ?' u7-8 【理论】动态类型 dynamic (10:50)5 O% | X( u! b% _3 G
7-9 【理论】反射与元数据 (10:55)) T0 A: R- N, ~) a
7-10 【操作】反射实战 (17:00), d% y9 |! ~/ {# z# d
7-11 【操作】异常处理 exception halding (12:48)
: K: b# ?4 @3 j/ y2 o7 V9 z6 T: c! w/ \+ e, p+ `( A% ?
第8章 委托与事件5 节 | 46分钟
& k# L+ z. K/ |& d本章,我们将会学习什么是委托、什么是事件,彻底参透两者之间的相似和不同之处。除此以外,我们也会学习不同的事件处理方式,掌握如何创建自定义事件。& x8 y2 d1 J# g1 s0 X% K
8-1 【理论】什么是委托 (13:06); T. j) [1 V2 E P, j3 M( a4 o
8-2 【操作】预定义委托方法 Func、Action (03:21)6 T$ U# _9 y" `( B1 W
8-3 【操作】c#预定义事件 (08:52)
) j" X L, m @/ r1 O3 _8-4 【操作】自定义事件 (13:51)
) Q/ O: R! u$ `) h8-5 【操作】字段式事件声明 (06:36), O1 [5 N) F4 ^1 y) |9 j3 p
) b) h$ @3 h0 q1 B9 L: s8 L第9章 WPF基础入门9 节 | 67分钟
/ v8 ?+ ]# x- r! o4 b) Z配合SQL Server数据库来完成一个基于WPF的客户管理系统。在本章中,我们将会掌握WPF的基础知识、各种UI控件使用技巧、数据的绑定方式、以及UI事件的分发与处理。+ k7 o# l% O- x) Q
9-1 【学前思考题】带着问题来学习! S* l8 R# O1 ]4 \
9-2 【操作】WPF 基础入门 (06:15)
5 x+ r: `) W5 I; s6 K3 h9-3 【理论】XAML页面剖析 (10:33)( K( N- m' J8 j1 x: ^5 `" u
9-4 【拓展】MVC 架构 (09:57)
% x; G7 N) C+ I j5 Z9-5 【理论】逻辑树与视觉树 (06:35)
5 g7 p' x) d3 h2 b9-6 【操作】Grid 网格系统 (07:04)
; z" g, M8 b" ]! F2 ^# [9 E* M6 c/ O9-7 【操作】依赖属性与数据处理 (05:32)& D& r7 H+ k, F& x: U
9-8 【操作】Data Binding 数据绑定 (09:28)
& Y( `: ?. S* K. b1 I' `+ f0 X+ Q9-9 【操作】INotifyPropertyChanged 事件处理 (11:15)
5 c4 t7 d+ x$ C3 B* `4 {& T7 C0 h3 b2 y: ^( W
第10章 数据库与WPF实战9 节 | 67分钟
) ~, h1 y* g- o) b配合SQL Server数据库来完成一个基于WPF的客户管理系统。在本章中,我们将会学习数据库的相关知识,数据建模和数据处理,创建并且连接数据库,完成客户数据的增删改查的操作。
4 f- Z6 U$ l; e' i5 I; b8 q/ C3 [10-1 【学前思考】带着问题来学习
& y- n; C$ K0 a1 `; U! W10-2 【操作】SQL Server 安装 (05:30); K- k9 h: ]0 u- x8 B( @5 `8 Z
10-3 【实战】dataset与table设置 (06:07)- e, R+ N6 I4 J6 C; n. s- ~$ _
10-4 【实战】显示列表型数据:客户列表 (13:52)
1 d" k" g( n V+ w10-5 【操作】数据关系与关联表 (07:56)
8 k! g# g, u0 O10-6 【实战】显示关联型数据:客户预约记录 (06:43)
; z( ?4 t5 Y* K10-7 【实战】删除数据 (12:43)
+ M; }; W- z! A: ]4 c$ c. C10-8 【实战】添加数据 (06:54)' n( B) U3 [3 q( L! u
10-9 【实战】更新数据 (06:39)9 U8 j- N I# @6 C
# ~( N& n5 H4 |* e9 b第11章 WPF实战-重构与美化17 节 | 119分钟
/ \5 W; k& W; _3 ~4 Y5 ]) v: j使用MVVM重构WPF项目,配合Material Design美化UI。在本章中,我们将会深入学习MVVM架构;使用EntityFramework来处理数据库生命周期;在完成项目业务层代码重构以后,还会使用Material Design来重新设计页面UI。' ? d4 P( m) g/ p* M* ^. {
11-1 【学前思考】带着问题来学习
5 ]# t, u1 X) p6 T11-2 【理解】什么是数据模型 (06:02)0 \2 H5 p, e. o' p: A/ k/ E
11-3 【理解】什么是Entity Framework (03:41)" ~$ t; _; L$ T" ^
11-4 【重构】构建数据模型 (07:24)
7 R/ h7 w& ^. |, I" b11-5 【重构】ORM数据管理(上) (08:07)
7 z2 }8 p a0 L' d6 L4 U# o" ]11-6 【重构】ORM数据管理(下) (12:12)& M/ N, Y/ }- n
11-7 【UI】美化主页面 (08:15)& f1 e: g3 ~/ z& Z3 y N) u1 G
11-8 【UI】组件化布局 (03:06)4 ]& h& B( _+ \$ Y9 _! g4 f4 y
11-9 【理论】MVVM 架构 (05:50)
# f2 X* K/ O9 u7 |, z1 p! a7 z11-10 【重构】创建视图模型,显示客户列表 (05:27)4 u1 }( n `8 F5 u" S
11-11 【实战】双向绑定,选择客户 (05:00)
* `* D! `4 c) o1 x11-12 【重构】ViewModel的嵌套与分解 (07:02)
9 J! ~$ ?+ j0 ]( a11-13 【重构】INotifyPropertyChanged 与 ObservableCollection (12:11)
7 E4 q4 O& w' W3 t! V11-14 【重构】显示预约列表 (05:18)- H* r9 h0 e$ f! \
11-15 【重构】添加新预约 (03:44)7 U8 l% Q9 Q9 A
11-16 【UI美化】配置Material UI框架 (10:03)! q, r" ^7 c" @
11-17 【UI美化】预约日历:自定义依赖属性 (14:43)- Y+ J- W3 z9 t0 |; t$ e8 H
+ d% s$ U U9 {' y第12章 Array与Collection11 节 | 85分钟
0 Y" n/ Y/ M/ h% G/ G8 X5 W5 l掌握C#的列表与集合,比如队列栈、哈希表、字典、数组等各种各样的数据结构,以及针对上述数据结构的c#的特殊用法和技巧,而在学习过程也我们也会结合客户管理系统来模拟真实工作场景的代码开发过程。
8 K$ ]3 \; G/ s! K/ @12-1 【学前思考】带着问题来学习
* U6 I5 H, W* O0 t12-2 【理论】什么是集合 (05:34)
: m# ^: E# |, J8 [, W i12-3 【理论】数组:固定长度的有序集合 (04:44)0 k. z% w6 @' Y9 @+ Y0 |
12-4 【理论】数组Array、列表List、数组列表ArrayList (05:25). I/ N) m( x: v( w6 ~3 r
12-5 【操作】List的创建、添加Add()、插入Insert()与删除RemoveAt() (11:49)
2 ?3 l _9 i1 V3 u d12-6 【操作】迭代器Enumerator与循环遍历ForEach (11:07)) C6 m( G* z7 _4 U* J
12-7 【操作】IEnumerable接口 vs IEnumerator接口 (13:21)
. T, N" ]/ ^1 c$ l12-8 【操作】迭代与 yield return (11:51)
' M' y7 ?4 _) m( j+ i12-9 【拓展】Benchmark 性能基准测试 (07:03)- R/ v% {8 w5 R, b2 b
12-10 【操作】数据搜索:字典 (06:49)
# l* M) B- ?( G& K- E% F12-11 【操作】集合的交、并、差运算:HashSet (06:39)
. x4 ^/ X) c: f( _+ y
$ r3 ?# r5 q4 B第13章 Linq13 节 | 86分钟
4 a$ V% O; F) q% g3 {$ y介绍了详解语言集成查询 (LINQ)的核心语法,通过示例代码结合数据库交互,学习数据变化追踪,模拟实际工作中的各种复杂的数据操作。
8 T) v6 ?/ H; z( h13-1 【学前思考】带着问题来学习
h) u2 H$ ^; B; n$ V" ]' L13-2 【理论】什么是linq (15:16)
% `% A4 a ]" U, J G13-3 【理论】lambda 表达式 (06:09)# w2 F; M9 J+ s9 ?8 ~1 ?
13-4 【理论】linq查询语法 (06:17)
3 V" H% N& }; S# n/ Z8 @8 \! p13-5 【操作】 linq 原理深度剖析 (06:27)
* p, Q' Z7 t9 v G# O- [) f! S) b13-6 【操作】从csv中读取数据 (07:37)( V7 Y% K7 L, Y- Z/ D& M
13-7 【操作】 排序与过滤 (06:36)- W7 m4 D9 U; G6 L1 m) Y4 T" G6 w% ?
13-8 【操作】数据量化 Any、All、Contains (02:51)
& ]; r" E" H1 r13-9 【操作】数据投影与SelectMany (07:39)3 H( F& s0 f8 a. D0 _6 y9 H* W
13-10 【操作】数据连接 join (09:44)
( \4 i1 H$ E" V+ b% o T13-11 【操作】数据分组 group (06:09)
1 P* ]4 [7 M) o13-12 【操作】数据分组连接 group join (05:54)+ Y; E' _0 c- r) g. W# ~
13-13 【操作】数据聚合 (05:06)
0 U2 ]! V/ k* g4 {4 h% `6 Q6 d4 E3 a* B
第14章 多线程与异步13 节 | 71分钟, L+ Z8 T6 p: U- c) x9 b9 w
许多开发人员对异步代码和多线程以及它们的工作原理和使用方法都有错误的认识。在这里,你将了解这两个概念之间的区别,并使用C#实现它们。7 `7 k4 W$ j! A+ r! I
14-1 【学前思考】带着问题来学习
# ~9 D' h/ E6 m9 y& m7 X14-2 【演示】多线程能干嘛 (04:42)
9 B: d, L, v! M: A" q8 h14-3 【理论】什么是进程?什么是线程 (07:05)
5 f6 j* B$ a8 S; |+ F! d$ l14-4 【操作】前台线程、后台线程与线程池托管 (08:49)
1 e {7 c' j, U7 F: M+ Z14-5 【操作】结束线程与CancellationToken (04:07)& }6 t8 @$ k8 E/ d- N" G) N- f- o
14-6 【操作】Join 与 IsAlive (03:15)5 ]0 b# j! v% L
14-7 【操作】资源竞争与线程锁lock (04:14)
/ I' F# d S6 h P0 X6 ]14-8 【理解】hello 异步 (04:45)
( Z) K/ z, q3 I1 K! m14-9 【理论】异步编程 Task (09:10), V' z: ^' g" S$ m
14-10 【理解】C#的异步async await (06:57)/ \- k, B6 {" C) T! a F1 S, z
14-11 【操作】Await async 真香 (04:25)
- F6 ?9 G1 W9 W14-12 【操作】异步是多线程吗?Task vs Thread- (07:35)
t, q" Q9 s) s: \* z. P14-13 【理论】并发(Concurrency)不是并行(Parallelism) (05:28) Q. h2 }& v7 K6 B# [
: o6 j2 G# V* b& y0 I, @. R第15章 垃圾回收、析构与IDisposable6 节 | 40分钟) G4 ~9 L5 h/ d- D- ?% _
漫谈C#中的垃圾回收机制,我们将从垃圾回收的原理讲起,让同学们理解内存回收的操作方式、剖析构造与析构方法运行机制、掌握IDisposable的正确打开方式。
; r5 O: m" C+ X# o1 k15-1 【学前思考】带着问题来学习
+ `: F' z. ^( @, b% h6 s5 F1 J5 G/ X15-2 【理论】读懂垃圾回收 GC (06:54)
: F+ t: K& ?6 e4 @8 a/ Q15-3 【理论】GC 是如何工作的 (04:33)4 Z p# e" } W3 T$ }: g: M& ?
15-4 【操作】析构方法 vs 终结器 (10:23)8 I$ z" r3 C! `; P% u8 H; o
15-5 【理论】什么是 Disposable 模式 (05:00)- ~/ l+ L; b+ W& _' E6 U$ S& _
15-6 【操作】使用 IDisposable 回收非托管资源 (12:54)
: @4 D$ f% ~+ c7 z- \* W5 {! o: J7 g
第16章 Unity3D实战:基础入门8 节 | 45分钟
. _" t# m4 i- K5 S) p( |使用当下最火的Unity3D引擎,配合课程所介绍的C#编程技巧,一步一步带领同学们学习Unity的基础操作、场景搭建、物理引擎、粒子效果等各种各样重要的组件。1 P4 i+ y8 f5 E5 f0 c! E
16-1 【学前思考】带着问题来学习
( s* G8 G7 @6 F+ B( t# d r16-2 【基础操作】 环境搭建与界面入门 (11:59)0 d) s. V9 |+ g9 d/ G3 y
16-3 【基础操作】什么是Rigidbody刚体 (11:58)
( R& p4 j6 U, c$ i7 s16-4 【基础操作】 如何移动物体 (04:29)
$ I, _! q3 l# H) i) V8 f$ W16-5 【理论】Unity 的基础物理组件. ?8 p; i1 }4 A" h
16-6 【基础操作】如何处理物体碰撞 (06:48)
3 V { g. i& R5 I' c* m16-7 【基础操作】如何处理碰撞事件 (04:47) O5 R/ a, |- H- \
16-8 【基础操作】预设物件(Prefabs)与游戏对象 (04:42)
1 ~# _6 o e. n/ w6 `7 W1 m
$ C; ]. t! `- B# A! [第17章 Unity3D实战:忍者切西瓜 11 节 | 83分钟
# `* r$ x O) | ]% H彻底了解一个游戏项目的开发过程,充分认识到从分析游戏开始,到构建模型、完成场景、添加动画效果等一系列的游戏项目的生命周期: R1 F. P& ?2 q4 i2 O! K. G6 N
17-1 【学前思考】带着问题来学习
( l& u A. J' l3 V" D17-2 【U3D实战】如何运行课程Unity案例?
3 z' ?& w. _ K1 s8 L" b17-3 【U3D实战】项目启动 (16:47)
! A1 y0 N) u5 p17-4 【U3D实战】创建水果发射器 (10:56)
6 m7 x, e. U6 t: E/ e17-5 【U3D实战】水果发射 (07:48)' a# k% v% m6 T; ?, m" ]" v
17-6 【U3D实战】创建忍者刀 (08:52)8 I' F6 T0 h) l
17-7 【U3D实战】创建游戏交互界面 (08:37)
: Y5 \" ~1 n' W9 O# Y9 R) O下载地址:
5 {! [! H9 t" L& W/ L! k9 P& h
|
|