您的位置:首页 > 理论基础

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#