C#程序设计下,网易云课堂,计算机专业
2018-01-16 09:44
218 查看
C#程序设计下:
第一讲 绘图及其图像,
1.1 绘图基础 GDI+
GDI:Graphics Device Interface
是.NET框架结构的重要组成部分。和GDI一样提供对二维图像的支持
这段代码包含常见所有用法
system.Drawing, 提供了对GDI+基本图形功能的访问,对于一般图形绘制足够。
System.Drawing.2D,提供高级的二维和矢量图形功能
System.Drawing.Imaging提供高级图像处理功能
System.Drawing.Text提供高级排版功能,该命令控件中的类允许用户创建和使用多种字体。
坐标系统:
默认从左上角是坐标原点,往右是X
往下是Y
常用结构
color封装了对颜色的定义,
000黑色,255白色
Rectangle是整形
RectangleF是浮点
1.2 绘图对象及其绘图方法
Graphics划线,直线,矩形
g.Dispose()显示释放创建的graphics对象。
draw画
fill填充
alignment对齐
dashstyle点线,
dot点
startCapEndCap
brush画刷
myGraphics.Transform矩阵
1.3
一组漂亮绘图示例
视频自动演示,然后给了代码
1.4控件的重绘和双缓冲
调用了下面几个方法
invalidate()
update()
refresh()
双缓冲技术:
画很多矩形,圆形,占据很多时间,屏幕会闪烁,方法,在内存里画好,直接放上去,避免闪烁。做动画都是这样做。
控件的doubleBuffered属性在framework3版本中有
1.5 图像处理
BITMAP类
位图,从image派生。
处理BMP,JPEG,.GIF格式
图像的绘制
图像处理,直接在内存中处理像素采用指针。平常用不上指针。
stride一行像素点占据的字节数
允许不安全代码
有两个处理图片的例子
ImageProcessor
更高级的处理图像的例子
CSharpFilters_src6
第二讲
文本处理及正则表达式
使用environment类
console类:控制台类
string类每次生成对象
stringbuilder类
system.text.encoding类。
default utf8 默认编码格式
.getencoding
getbytes(str)
.GetString(byte[])
2.2正则表达式
匹配某类文本。查找各种需要的某类文本。
处理文本,没有正则表达式,寸步难行。
【0-9】{2.4}出现2-4次
^[a-zA-A] + $
从头到尾匹配
几个主要要素
字符ab
\t \[
\u0020
\x20
a- z :\w
0-9: \d
\s表示空白,
\S表示非空白
.表示任意字符
次数:
{2,6}2到6次
*:{0,}0到无穷次
+:{1,}1到无穷次
?表示:{0,1}
*? +? ??懒惰匹配
|或者
()成组,算成一部分,是一起的。
位置限定
^ 开头
xxxxxxxx$表示末尾
\b单词边界 \B非单词边界
?<名称>xxxxxx
分组进行命名
忽略大小写
mulitline影响^$的含义
singleline影响.的含义
Regex类
using System.Text.RegularExpressions在这个类下面有正则表达式
W+多个字母,
\d+多个数字,
regex正则表达式
播放歌曲,显示歌词的软件
歌词:lrc格式
时间和歌词匹配
重复歌词就会有多个时间。
工具箱,选择项,找到控件,添加windows按键
原则就是:
歌词和时间匹配
第三讲
网络信息获取及XML处理
HTTP协议:传输文本,图片,视频等。
客户端和服务端组成。
之间通信,客户端提出请求request,服务端相应,response
之间用IO流stream来表示
get:写到网址, post
查看通信过程中的请求响应信息:fiddler2工具,
浏览器中输入网址,代替我们像服务端发出请求,按下F12或者右击,审查元素,查看源,打开开发者选项,看到每次请求,用到的get方法,
headers传递的信息,response相应的信息。
软件监控浏览器所有过程。
cookies指本机服务器一点信息。下次同样网站,会把信息传递到服务端。有时候记录个人信息
set-cookie:
webRequest请求
根据网址得到request
WebResponse
写信息:给服务器发送信息
读信息:从服务端得到信息
代码段:
credentials要求认证,
request得到response
3.2
XML基本操作
是在数据交换和表示中最常用的方式,用文本呈现,有特有的结构
isbn书的属性,
所有东西成对,
DOM文档对象模型,通用的
SAX解析的简单API
XMLNODE的操作
查询,增加,删除
3.3
XPath 及Xlst
Axes路径/及//
第几个子节点[1]等
属性@
条件[]
load装入
root根节点
selectnodes选择节点
使用xlst进行转换
3.4
一组示例,视频,很快就过去了,然后给了原代码
第四讲
多线程与异步编程
4.1 线程及其控制
创建,控制,线程池,集合中使用,界面中使用
进程:process
每个事情成为线程,
thread相当于一个任务,
指令:一个方法
数据:相关对象
abort撤销,
join等待
创建线程:thread类,
多线程:同时执行多个任务
sleep等待会
cnt ++计数
同一个任务创建三个线程,交替执行
停止:线程函数会一直执行,直到结束
查询线程状态
线程有优先级
highest
lowest
在线程中画图,每个线程画自己的图,然后互不干扰
isBackground成为后台线程,主线程停止,后台线程也停止。
run()方法核心
无限循环,x,y位置做个小变化,创建对象,矩形,圆,对象。
第二个视频
线程同步
使用join()方法
两个线程都要访问同样一个变量,
lock()对象进行锁定,等一系列执行完毕,其他线程才能进来,用于访问关键变量。
线程池及其他相关类。
线程会带来新的开销,代价很高,
很多线程会很慢,才有了线程池,需要从里面取线程,执行任务,任务结束,对象不释放,用作别的用途。
Threadpool.
Timer的构造方法如下:
视频3
集合的线程安全性
array,arraylist使用方法获取一个线程安全的包装对象
Windows界面与线程
使用backgroundworker组件。
C#5.0用更加方便的异步方法
4.2 并行编程
多个CPU同时执行任务
TPL并行任务库。
task用线程池进行任务执行,比threadpool更优化,
parallel是并行执行任务类的实用类
Task类的使用。
task中的异常
aggregateException合并的异常
parallel类的使用
并行Linq
在集合上加个AsParallel()
#########
4.3 异步编程
asynchronize异步
特点:
不堵塞当前任务,,提高UI相应能力
传统方法:委托:beginInvoke and endInvoke
C#5.0(.net framework4.5, vs 2013)
增加await and async关键字
解决了传统方法中:异步任务与回调方法分开写
在winform中
异步的流
第五讲 访问数据库
5.1
数据库基础知识
数据按照一定结构存储和管理
数据库管理系统DBMS
oracle,MS SQL Server。
优点:
共享性,独立性,完整性
管理功能:定义,操纵,完整,安全,并发
微软的:
Microsoft SQL Server
microsoft access
其他的数据库
Oracle, Mysql(开源)
RDBMS基本概念
关系型数据库RDB
9成都是关系型数据库
二维表格组织数据
表datatable
行datarow: 记录record
列:datacolum:字段field
主键:primary key
数据库表的设计
示例:
书籍表:编号,书名,作者,出版社
院系表:编号,名称,办公地址,办公电话
实体关系图E-R图
第三个视频
数据库的使用
1可视化的管理界面
类似Windows桌面软件
2 程序
SQL结构化查询语言
数据库标准操作语言
包含数据定义,数据查询,操纵,控制,
最常用的操作,增删改查。
CRUD:creat,re,update,delete,
通过编程操作数据库
5.2
ADO.NET数据库的访问技术
位于system.data名称控件里面
ODBC,
DAO,
ADO
ADO.NET
四个重要对象:
connection, command,
datareader,
dataadapter,
供应程序provider
5.3 访问数据库的方法
方式1:dataadapter and dataset
适合离线处理,自动建立command对象。
方式2:datareader
适合于只读数据,效率较高。
connection对象:
不同data provider有不同connection对象
连接字符串:
使用command对象:
使用参数:
第二个视频:
command and datareader
5.4
数据库应用程序
应用示例:酒店管理系统
界面和数据库的关系:界面-sql语句-数据库
用户在界面输入一个查询语句,生成一个sql语句,语句去访问数据库。结果再显示到界面上
图书管理系统
数书目查询,
登录,查询等都是界面到SQL语句的过程。
点击确定,跳转到程序内部,通过代码取得用户名,密码。
分层架构
UI :user graphical interface
BLL:business logic layer
DAL: data access layer
MODEL:数据模型
这几层之间传递参数
ORMapping(object-relation mapping)
对象-关系映射
第三个视频,重要,重复看
信息管理系统
后台数据库,前台UI界面
分层,每层建立一个文件夹,或者每层建立一个项目
界面层主要是窗体
第六章
深入理解C#语言
6.1 类型与转换
C#数据类型
值类型,引用类型。
值类型包括:
简单类型
结构类型
枚举类型
引用类型包括:
类类型
数组类型
指代类型
引用
分配到堆里,
值
分配到栈里
引用类型转换
隐式转换:子类转换为父类
显示转换:父类转换为子类。
引用类型和值类型转换Boxing and unboxing
把引用类型包装好,封装成Object对象,然后转换为值类型。
域变量和局部变量
类static变量类似类中的全局变量
域变量类似对象中的变量
局部变量:在函数体及其{}中,在栈中分配,自动消失
域变量自动有初值,局部变量则不
6.2变量及其传递
ref参数
params参数
默认参数
6.3 多态与虚方法
多态:同名字
编译时候多态
运行时候多态
上溯造型和虚方法调用
最可派生的方法
6.4 动态类型确定
is运算符
用于判断运行时对象的类型
== 与!=
6.5
对象构造与析构
构造方法的初始化部分:使用this and base
class Student : Person
{
}
说明学生是人的子类
base是父类的构造方法
域的初始化
中不能引用this
构造方法的执行过程
若有this(),转向之
执行域的初始化
转到base
执行方法体
应避免在构造方法中调用任何虚方法
静态构造方法
第二个视频
析构方法(前面不能有修饰)
~类名(){}
自动垃圾回收
显示资源管理
6.6C#语言新特性
泛型C#20.
动态语言特性C#4.0
异步编程 C#5.0
task, await
初始化更方便C#6.0
C#程序设计下:
第一讲 绘图及其图像,
1.1 绘图基础 GDI+
GDI:Graphics Device Interface
是.NET框架结构的重要组成部分。和GDI一样提供对二维图像的支持
这段代码包含常见所有用法
system.Drawing, 提供了对GDI+基本图形功能的访问,对于一般图形绘制足够。
System.Drawing.2D,提供高级的二维和矢量图形功能
System.Drawing.Imaging提供高级图像处理功能
System.Drawing.Text提供高级排版功能,该命令控件中的类允许用户创建和使用多种字体。
坐标系统:
默认从左上角是坐标原点,往右是X
往下是Y
常用结构
color封装了对颜色的定义,
000黑色,255白色
Rectangle是整形
RectangleF是浮点
1.2 绘图对象及其绘图方法
Graphics划线,直线,矩形
g.Dispose()显示释放创建的graphics对象。
draw画
fill填充
alignment对齐
dashstyle点线,
dot点
startCapEndCap
brush画刷
myGraphics.Transform矩阵
1.3
一组漂亮绘图示例
视频自动演示,然后给了代码
1.4控件的重绘和双缓冲
调用了下面几个方法
invalidate()
update()
refresh()
双缓冲技术:
画很多矩形,圆形,占据很多时间,屏幕会闪烁,方法,在内存里画好,直接放上去,避免闪烁。做动画都是这样做。
控件的doubleBuffered属性在framework3版本中有
1.5 图像处理
BITMAP类
位图,从image派生。
处理BMP,JPEG,.GIF格式
图像的绘制
图像处理,直接在内存中处理像素采用指针。平常用不上指针。
stride一行像素点占据的字节数
允许不安全代码
有两个处理图片的例子
ImageProcessor
更高级的处理图像的例子
CSharpFilters_src6
第二讲
文本处理及正则表达式
使用environment类
console类:控制台类
string类每次生成对象
stringbuilder类
system.text.encoding类。
default utf8 默认编码格式
.getencoding
getbytes(str)
.GetString(byte[])
2.2正则表达式
匹配某类文本。查找各种需要的某类文本。
处理文本,没有正则表达式,寸步难行。
【0-9】{2.4}出现2-4次
^[a-zA-A] + $
从头到尾匹配
几个主要要素
字符ab
\t \[
\u0020
\x20
a- z :\w
0-9: \d
\s表示空白,
\S表示非空白
.表示任意字符
次数:
{2,6}2到6次
*:{0,}0到无穷次
+:{1,}1到无穷次
?表示:{0,1}
*? +? ??懒惰匹配
|或者
()成组,算成一部分,是一起的。
位置限定
^ 开头
xxxxxxxx$表示末尾
\b单词边界 \B非单词边界
?<名称>xxxxxx
分组进行命名
忽略大小写
mulitline影响^$的含义
singleline影响.的含义
Regex类
using System.Text.RegularExpressions在这个类下面有正则表达式
W+多个字母,
\d+多个数字,
regex正则表达式
播放歌曲,显示歌词的软件
歌词:lrc格式
时间和歌词匹配
重复歌词就会有多个时间。
工具箱,选择项,找到控件,添加windows按键
原则就是:
歌词和时间匹配
第三讲
网络信息获取及XML处理
HTTP协议:传输文本,图片,视频等。
客户端和服务端组成。
之间通信,客户端提出请求request,服务端相应,response
之间用IO流stream来表示
get:写到网址, post
查看通信过程中的请求响应信息:fiddler2工具,
浏览器中输入网址,代替我们像服务端发出请求,按下F12或者右击,审查元素,查看源,打开开发者选项,看到每次请求,用到的get方法,
headers传递的信息,response相应的信息。
软件监控浏览器所有过程。
cookies指本机服务器一点信息。下次同样网站,会把信息传递到服务端。有时候记录个人信息
set-cookie:
webRequest请求
根据网址得到request
WebResponse
写信息:给服务器发送信息
读信息:从服务端得到信息
代码段:
credentials要求认证,
request得到response
3.2
XML基本操作
是在数据交换和表示中最常用的方式,用文本呈现,有特有的结构
isbn书的属性,
所有东西成对,
DOM文档对象模型,通用的
SAX解析的简单API
XMLNODE的操作
查询,增加,删除
3.3
XPath 及Xlst
Axes路径/及//
第几个子节点[1]等
属性@
条件[]
load装入
root根节点
selectnodes选择节点
使用xlst进行转换
3.4
一组示例,视频,很快就过去了,然后给了原代码
第四讲
多线程与异步编程
4.1 线程及其控制
创建,控制,线程池,集合中使用,界面中使用
进程:process
每个事情成为线程,
thread相当于一个任务,
指令:一个方法
数据:相关对象
abort撤销,
join等待
创建线程:thread类,
多线程:同时执行多个任务
sleep等待会
cnt ++计数
同一个任务创建三个线程,交替执行
停止:线程函数会一直执行,直到结束
查询线程状态
线程有优先级
highest
lowest
在线程中画图,每个线程画自己的图,然后互不干扰
isBackground成为后台线程,主线程停止,后台线程也停止。
run()方法核心
无限循环,x,y位置做个小变化,创建对象,矩形,圆,对象。
第二个视频
线程同步
使用join()方法
两个线程都要访问同样一个变量,
lock()对象进行锁定,等一系列执行完毕,其他线程才能进来,用于访问关键变量。
线程池及其他相关类。
线程会带来新的开销,代价很高,
很多线程会很慢,才有了线程池,需要从里面取线程,执行任务,任务结束,对象不释放,用作别的用途。
Threadpool.
Timer的构造方法如下:
视频3
集合的线程安全性
array,arraylist使用方法获取一个线程安全的包装对象
Windows界面与线程
使用backgroundworker组件。
C#5.0用更加方便的异步方法
4.2 并行编程
多个CPU同时执行任务
TPL并行任务库。
task用线程池进行任务执行,比threadpool更优化,
parallel是并行执行任务类的实用类
Task类的使用。
task中的异常
aggregateException合并的异常
parallel类的使用
并行Linq
在集合上加个AsParallel()
#########
4.3 异步编程
asynchronize异步
特点:
不堵塞当前任务,,提高UI相应能力
传统方法:委托:beginInvoke and endInvoke
C#5.0(.net framework4.5, vs 2013)
增加await and async关键字
解决了传统方法中:异步任务与回调方法分开写
在winform中
异步的流
第五讲 访问数据库
5.1
数据库基础知识
数据按照一定结构存储和管理
数据库管理系统DBMS
oracle,MS SQL Server。
优点:
共享性,独立性,完整性
管理功能:定义,操纵,完整,安全,并发
微软的:
Microsoft SQL Server
microsoft access
其他的数据库
Oracle, Mysql(开源)
RDBMS基本概念
关系型数据库RDB
9成都是关系型数据库
二维表格组织数据
表datatable
行datarow: 记录record
列:datacolum:字段field
主键:primary key
数据库表的设计
示例:
书籍表:编号,书名,作者,出版社
院系表:编号,名称,办公地址,办公电话
实体关系图E-R图
第三个视频
数据库的使用
1可视化的管理界面
类似Windows桌面软件
2 程序
SQL结构化查询语言
数据库标准操作语言
包含数据定义,数据查询,操纵,控制,
最常用的操作,增删改查。
CRUD:creat,re,update,delete,
通过编程操作数据库
5.2
ADO.NET数据库的访问技术
位于system.data名称控件里面
ODBC,
DAO,
ADO
ADO.NET
四个重要对象:
connection, command,
datareader,
dataadapter,
供应程序provider
5.3 访问数据库的方法
方式1:dataadapter and dataset
适合离线处理,自动建立command对象。
方式2:datareader
适合于只读数据,效率较高。
connection对象:
不同data provider有不同connection对象
连接字符串:
使用command对象:
使用参数:
第二个视频:
command and datareader
5.4
数据库应用程序
应用示例:酒店管理系统
界面和数据库的关系:界面-sql语句-数据库
用户在界面输入一个查询语句,生成一个sql语句,语句去访问数据库。结果再显示到界面上
图书管理系统
数书目查询,
登录,查询等都是界面到SQL语句的过程。
点击确定,跳转到程序内部,通过代码取得用户名,密码。
分层架构
UI :user graphical interface
BLL:business logic layer
DAL: data access layer
MODEL:数据模型
这几层之间传递参数
ORMapping(object-relation mapping)
对象-关系映射
第三个视频,重要,重复看
信息管理系统
后台数据库,前台UI界面
分层,每层建立一个文件夹,或者每层建立一个项目
界面层主要是窗体
第六章
深入理解C#语言
6.1 类型与转换
C#数据类型
值类型,引用类型。
值类型包括:
简单类型
结构类型
枚举类型
引用类型包括:
类类型
数组类型
指代类型
引用
分配到堆里,
值
分配到栈里
引用类型转换
隐式转换:子类转换为父类
显示转换:父类转换为子类。
引用类型和值类型转换Boxing and unboxing
把引用类型包装好,封装成Object对象,然后转换为值类型。
域变量和局部变量
类static变量类似类中的全局变量
域变量类似对象中的变量
局部变量:在函数体及其{}中,在栈中分配,自动消失
域变量自动有初值,局部变量则不
6.2变量及其传递
ref参数
params参数
默认参数
6.3 多态与虚方法
多态:同名字
编译时候多态
运行时候多态
上溯造型和虚方法调用
最可派生的方法
6.4 动态类型确定
is运算符
用于判断运行时对象的类型
== 与!=
6.5
对象构造与析构
构造方法的初始化部分:使用this and base
class Student : Person
{
}
说明学生是人的子类
base是父类的构造方法
域的初始化
中不能引用this
构造方法的执行过程
若有this(),转向之
执行域的初始化
转到base
执行方法体
应避免在构造方法中调用任何虚方法
静态构造方法
第二个视频
析构方法(前面不能有修饰)
~类名(){}
自动垃圾回收
显示资源管理
6.6C#语言新特性
泛型C#20.
动态语言特性C#4.0
异步编程 C#5.0
task, await
初始化更方便C#6.0
相关文章推荐
- C#程序设计六大原则记录
- C#2008与.NET 3.5 高级程序设计读书笔记(3)--C#核心编程结构I
- C#程序设计(十二)----(体验接口)
- 【C#与.NET程序设计】(1)- .NET
- C# Windows 程序设计 学习笔记2 Paint事件
- 读记:C#与.NET4高级程序设计(第5版)_20130517
- (八)C#之WinForm程序设计-图片浏览器
- C#2008与.NET 3.5 高级程序设计读书笔记(25)-- WCF
- 读记:C#与.NET4高级程序设计(第5版)_20130618
- C#文档编辑器程序设计报告摘要
- C#网络程序设计(1)网络编程常识与C#常用特性
- 在C#程序设计中使用Win32类库
- C#WinForm程序设计——系统托盘NotifyIcon控件
- C#与.NET4 高级程序设计-----委托、事件 学习笔记
- C#程序设计语言Version2.0简介(zz)
- C#程序设计(一)
- 读记:C#与.NET4高级程序设计(第5版)_20130524
- 【C#与.NET程序设计】(3)- C#基本参数类型
- C#2008与.NET 3.5 高级程序设计读书笔记(13)-- C#3.0的语言功能
- C#程序设计:绘制正方形并显示其信息(李乃文等:《C#程序设计实践教程》)