C#小笔记
文章平均质量分 84
蓝吹则友
这个作者很懒,什么都没留下…
展开
-
C#图解教程(第四版)小笔记——反射和特性
元数据和反射元数据(metadata):有关程序及其类型的数据,保存在程序集中。反射(reflection):一个运行的程序查看自身或其他程序的元数据。需要使用System.Reflection命名空间。BCL中声明了一个叫做Type的抽象类,包含了类型的特性。使用这个类的对象能获取程序使用的类型的信息。Type是抽象类,实际上访问的是CLR创建的Type(RuntimeType)的派生类。程序中的每一个类型,都会关联到独立的、由CLR创建的包含这个类型信息的Type类对象。类型的多个实例只关联到一原创 2021-09-28 16:07:04 · 183 阅读 · 0 评论 -
C#图解教程(第四版)小笔记(总)
基础字符串格式说明符:由索引号,对其说明符、各式字段3个部分组成索引号尝试引用超出替换值列表长度以外的索引时,不会产生编译错误,但会产生运行时错误(异常)对齐说明符可选,+(默认,可不写)表示右对齐,-号表示左对齐整数表示使用字符的最少数量格式字段9个内置格式说明符:C、c:货币,货币符号取决于程序所在PC的区域设置D、d:十进制F、f:定点G、g:常规,在没有指定说明符的情况下,会根据值转换为定点或科学记数法表示的紧凑形式X、x:十六进制N、n:数字,每三个数字间有逗号(原创 2021-09-27 20:16:47 · 895 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——委托与事件
委托 delegate可以认为委托是一个持有一或多个方法的对象,执行委托,会执行它所“持有”的所有方法。所有的委托类型都派生于System.MulticastDelegate,而它又派生于System.Delegate。可以把委托看成一个包含有序方法列表的对象。声明委托类型不需要在类内部声明,因为它是一种类型声明。在创建委托类型变量时,可使用new也可不使用,因为在方法名称和其相应委托类型之间存在隐式转换。创建委托对象//声明委托类型的变量MyDel md;//两个等价的创建语法原创 2021-09-27 20:09:14 · 116 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——泛型
C#提供了5中泛型:类、结构、接口、委托和方法,前四个是类型,方法是成员。使用where子句约束类型参数每一个有约束的类型都要自己的where子句。使用逗号分隔多个约束。where子句在类型参数列表的关闭尖括号后列出,不使用任何符号分隔,可以以任意次序列出。约束的类型和顺序①最多只能有一个主约束,且主约束必须放在第一位。②可以有任意个接口名约束。③若存在构造函数约束,必须放在最后。泛型方法调用时可不指定尖括号内的类型参数(S、T),编译器会自行根据传入的参数的类型推断类型形参的原创 2021-09-27 20:02:18 · 153 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——枚举器和迭代器
枚举器实现枚举器(enumerator)的对象称为可枚举类型(enumerable type 或enumerable)。调用可枚举类型的GetEnumerator方法获取枚举器。foreach原理:①调用GetEnumerator方法获取enumerable的枚举器。②从枚举器请求每一项并把它作为迭代变量,代码可以读取变量但是不能改变。IEnumerator接口和IEnumerable接口实现IEnumerator接口的枚举器包含三个函数成员:Current只读属性,返回object类原创 2021-09-27 19:58:45 · 173 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——预处理指令
预处理指令预处理指令(preprocessor directive)指示编译器如何处理源代码。在C#中没有实际的预处理程序,预处理指令由编译器来处理。基本规则:预处理指令必须和C#代码在不同的行。不需要以分号结尾每一行必须以#符号开始,#符号前后都可以有空格允许行尾注释预处理指令所在行不允许分隔符注释(/*分隔符注释 */)#define与#undef#define用于声明一个编译符号,#undef用于取消定义一个编译符号。只能用在源文件的开头(using前),不能在代码中间定义原创 2021-09-27 16:11:18 · 117 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——LINQ
LinqLanguage Integrated Query语言集成查询。可以用于从数据库、程序对象的集合、XML文档中查询数据。from、in、where、orderby、selectint[] numbers = { 2, 12, 5, 15}; //数据源IEnumerable<int> lowNums = from n in numbers where n < 10 select n; //定义并存储查询foreach(var x in lowNums){Console原创 2021-09-27 18:26:35 · 212 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——命名空间和程序集
命名空间和程序集创建类库的步骤:在VS新建项目模板中,选择类库。编辑完成代码后生成dll文件。namespace SuperLib{ public class SquareWidget { public double SideLength = 0; public double Area { get{return SideLength * SideLength;} } }}生成的dl原创 2021-09-27 19:37:30 · 292 阅读 · 0 评论 -
C#图解教程(第四版)小笔记——异步
异步异步的方法在处理完成之前就返回到调用方法。C#的async/await特性可以创建并使用异步方法。async/await特性的结构调用方法(calling method)该方法调用异步方法,然后在异步方法(可能在相同或不同线程)执行其任务时继续执行。异步方法(async)异步执行工作,然后立即返回到调用方法。await表达式用于异步方法内部,指明需要异步执行的任务。一个异步方法可以包含一到多个await表达式,不包含编译器会发出警告。异步方法返回类型只能为void,Task或T原创 2021-09-27 19:48:57 · 541 阅读 · 0 评论