c# 初级 委托 多线程 正则表达式 GDI绘画
命名空间:
使用:
使用目的:对类进行分类
使用方法:使用using关键词引入
方法:在对象前加入命名空间名
可以对命名空间进行嵌套
字符串操作:
字符串与正则表达式
字符串:
字符串类:System.String
System.Text.StringBuilder
string 方法:
字符串名.Length() 获取字符串的长度
“+” 字符串连接
字符串名[位次] 使用索引器语法取得字符串中某个字符
Replace() 用另一个字符串或者字符代替字符串中给定的字符或者字符串
CompareTo() 比较字符串的内容
Split() 出现该字符串的地方,将该字符串拆分为一个字符串数组
SubString() 在字符串中检索给定位置的子字符串
ToLower()把字符串转换为小写形式
ToUppr() 把字符串转换为大写形式
Trim() 删除首尾的空白
Concat() 合并字符串
CopyTo() 把字符串中指定的字符复制到一个数组中
Format()格式化字符串
IndexOf() 取得字符串第一次出现某个给定字符串或者字符的位置
IndoxOfAny()
Insert() 把一个字符串实例插入到另一个字符串实例的指定索引处
Join()合并字符串数组,创建新的字符串
能够改变字符串本身
stringbuilder 方法:
Append() 在末尾增加字符串
Insert (索引,插入的数据) 在字符串里插入数据
Remove(范围左,范围右) 删除从某个位置到某个位置的字符串
Replace(替换前的字符,替换后的字符)
正则表达式:
使用数学算法解决计算机程序的文本检索,匹配。
检索:
通过正则表达式,从字符串获取想要的部分。
匹配:
判断给定字符串是否符合正则表达式的过滤逻辑
表述了一个字符串的书写规则
组成 由特殊字符组成的文字模式。
委托:
委托是多个方法的指针
委托指向的函数必须与委托有共同签名
将方法当参数传递,需要用到委托,委托是一个类型
delegate 修饰词 委托里不能存在方法
委托可以作为一个变量赋值方法
特殊委托:
func委托:只能指向有返回值的方法
action委托:只能指向没有返回值的方法
委托类方法:
delegate 类型 InMethodInvoker(int x); 该委托能够指向一个int参数类型的方法,且方法的返回值是类型的
匿名函数:
当方法只执行一次时考虑使用匿名函数
delegate(传参) 方法体;
lamda表达式:
=> goes to
委托名 委托 = (传参)=>方法体
用于表示条件 函数(参数 => 参数条件)
泛型委托:
泛型能够定义自己的类型参数
关键词 T
创建泛型委托:关键词 委托名
多播委托:
指向更多函数的委托
当签名相同时则可以调用更多委托
委托支持位操作 委托名 += 方法名
反射:
使用类方法操作dll文件
查找dll文件,通过reflection反射类来操作dll文件
在运行时查看特性信息
延迟绑定的属性和方法
在运行时创建新类型,使用这些类型执行任务
Assembly
Load(命名空间) 读取程序集
LoadFile(文件绝对路径)
LoadFrom(程序集名称)默认有根目录 需要后缀
AppDomain 表示一个应用程序域
CurrentDomain 当前应用域 BaseDirectory 获取根目录
泛型反射:
方法名为一个泛型列表 返回泛型类实例对象
Type类:
能够获取到反射类
方法:
Activator 类 CreateInstance 方法 能够创建一个反射对象的实例
GetProperties 方法 获取反射到的对象的属性
方法:
查找加载dll文件
Assembly 类(程序集类)
读取方法
Load(文件名):Assembly 程序集名 = Assembly.Load(文件名)
读取文件必须在程序下,或者进行引用
LoadFile(完整路径名或者文件全名): 读取文件必须填入完整路径名
实例化
Type 类:
方法:GetType(类型) 获取指定类型
ReflectionTest类:
单例模式:
1:将构造函数私有化
2:静态方法,返回一个对象
3:创建一个单例:Public partial 对象名 方法
4:增加一个布尔值,初始为null
多线程:
在不同的cpu上或多核cpu的不同内核上
线程是程序中独立的指令流,一个应用程序启动,回启动一个进程,进程启动多个线程
Thread类:
Thread 构造函数是一个无参无返回值的委托类型
传递参数时只能传递object 类型
Thread 名 = new Thread(方法)
当需要实现的代码比较少可以使用
方法:
开启线程:Start()
属性:
isbackground 属性 该属性为 false时为后台线程
前台线程:
当前台线程在运行时,进程就不会被终止,
后台线程:
后台线程是为前台线程或程序服务的。前台线程执行完后会关闭后台线程
传参:
创建方法,包含object参数类型
将start中参数传递给该方法
执行参数方法
2:
自定义类传递参数
线程池:
提前开启多线程,减少线程开启时间
线程池全部是后台线程,入池线程一般是小线程
在双核cpu中,默认设置为1023个工作线程和1000个i/o线程
ThreadPool类管理线程
方法 QueueUserWorkItem() 启动线程池
任务:
任务是放置于线程池的
方式:
创建TaskFactory 类对象
创建Task类对象引用TaskFactory的StartNew方法
创建Task对象,调用Task的Start()方法
任务是顺序执行的
充血模型:
类中既有属性又有方法
贫血模型:
类中只有属性没有方法
GDI 绘图
绘图装置接口
gdi类:Gtaphics
绘制字符串方法 DrawString (String, Font, Brush, Single, Single, StringFormat )
绘制直线方法 DrawLine (Pen, PointF, PointF)
pen类:
画笔,构造函数为颜色
Point类:
点,构造函数为xy坐标
bitmap类:位图
绘制验证码:
创建随机数,在上面划线,随机字体,随机颜色
在gdi对象中调用DrawString 函数
Solid(Color)
网络:
从远程服务器上获取数据
把本地数据传输到服务器上
服务器开发基础
观察者模式:
通过委托实例化的事件监听操作;
通过死循环监听操作;
扩展方法:
方法的参数中加入this,使得该方法成为参数类型的扩展方法
扩展方法只能在非泛型静态类中创建
Params关键词 :
伸缩关键词,该关键词标注的参数可有可无。
重载:
构造方法相同时,修改构造函数的参数数量或者类型都能重载一个构造方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」