首页 > 编程语言 >c# 高级

c# 高级

时间:2023-09-16 17:55:07浏览次数:33  
标签:委托 c# 高级 类型 线程 字符串 参数 方法

命名空间:

使用:
使用目的:对类进行分类 使用方法:使用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关键词 :

伸缩关键词,该关键词标注的参数可有可无。 重载: 构造方法相同时,修改构造函数的参数数量或者类型都能重载一个构造方法  

标签:委托,c#,高级,类型,线程,字符串,参数,方法
From: https://www.cnblogs.com/alicia0/p/17707043.html

相关文章

  • 无参数RCE实践
    来自:[GXYCTF2019]禁止套娃首先打开一看,什么都没有:查看源码也啥都没有,没有hint。那这种情况下估计是源码泄露,我们用dirsearch扫一下:扫了一堆git出来,估计就是git泄露。这里就需要第二个工具githack,拿到源码文件:打开一看,确定了是文件包含:<?phpinclude"flag.php";echo......
  • c# 初级 常用类
    文件操作类:Path类:静态类,操作文件路径类,位于io集合下Path.GetFileName() 快速获得文件路径Path.GetFileNameWithoutExtension() 快速获得不带扩展名的文件名Path.GetExtension() 快速获得文件扩展名Path.GetDirectoryName() 快速获得文件所在文件夹的名称path.GetFilePa......
  • 米联客MLK-CU01-040-060 AMD UltraScale核心模块硬件手册
    1整体概述MLK-CU01-040-060核心模块是米联客电子KintexUltraScale系列开发平台的全新高端产品。其核心模块集成电源管理:0.95V核心电源,最大输出24A。用户基于核心模块设计功能底板(提供功能底板设计方案)。降低项目功能底板设计难度和生产成本,加速项目开发。其应用领域包含高速通......
  • CSP 2023 游记
    今天就不早读了。去前做了个2019的题,60多分,感觉挺危。去比赛前30min发现没带身份证,去宿舍拿的。前10min发现没有笔,借了一些,但是发现还有一个小时才开始比赛,于是去了一趟教室,吓到了同桌。在楼上看到一堆小学生,遂大喊“我是jijidawang”,但他们都不认识,差评()后又喊“别打......
  • react____tab点击切换状态的实现
    //实现思路:点击谁就把谁的type属性交给state中的active完整代码import'./index.css'importavatarfrom'./images/avatar.png'importReactfrom'react'//时间格式化functionformatDate(time){return`${time.getFullYear()}-${time.getMonth()}-${tim......
  • c# 初级
    值类型与引用类型值类型与引用类型的区别在于,值类型存储在栈中,而引用类型存储在堆中。值类型:int、double、char、decimal、bool、enum、struct等。引用类型:string、数组、自定义类、集合、object、接口等。值传递与引用传递在方法调用中,值类型是将实际值传递给方法,引用类型......
  • CUDA memories
    GlobalThere'salargeamountofglobalmemory.It'sslowertoaccessthanothermemorylikesharedandregisters.AllrunningthreadscanreadandwriteglobalmemoryandsocantheCPU.ThefunctionscudaMalloc,cudaFree,cudaMemcpy,cud......
  • 前端学习笔记202309学习笔记第八十玖天-完善各个模块的reducer
     ......
  • 前端学习笔记202309学习笔记第八十玖天-react-redux-switch之3
    ......
  • 前端学习笔记202309学习笔记第八十玖天-react-redux-switch
     ......