文档章节

【C#】《C#6.0学习笔记》(2)

im天行
 im天行
发布于 2017/05/25 17:18
字数 2120
阅读 50
收藏 0

内容

chap5 字符串处理与数学运算

  • 5.1 对象的字符串表示形式
    • 重写ToString方法
      • 通过重写ToString方法来实现把对象实例转化为字符串表示形式。ToString方法是在Object类中定义的。public virtual string ToString()
      • 代码在\第5章\Example_1
    • 扩展方法
      • 扩展方法为静态的公共方法,在第一个参数前加上this关键字指明要扩展的类型。
      • 代码在\第5章\Example_2
  • 5.2 字符串的串联与拆分
    • 使用+运算符串联字符串
      • int n=100; string s="整数值为:" + n.ToString();
    • 使用join方法拼接字符串数组
      • string[] strarr1={"a","b","c"}; Console.WriteLine(string.Join("/",strarr1));//得到的字符串是"a/b/c"
      • 代码在\第5章\Example_3
    • 使用Concat方法创建字符串
      • 代码在\第5章\Example_4
    • 使用StringBuilder类创建字符串
      • 代码在\第5章\Example_5
    • 使用Split方法拆分字符串
      • 代码在\第5章\Example_6
  • 5.3 转义字符
    • 如果希望把字符串中的字符都作为原义字符,即不考虑转义字符,可以在字符串前面加上一个“@”符号。Console.WriteLine(@"C:\tracks.doc,\t\n");
  • 5.4 英文字母的大小写转换
  • 5.5 Parse和TryParse方法
    • TryParse()不管转化成功与否,都不会抛出异常,但会通过返回值来告诉调用者是否转化成功。
    • 代码在\第5章\Example_9
  • 5.6 查找和修改字符串
    • 代码在\第5章\Example_13
  • 5.7 格式化字符串
    • 5.7.1 IformatProvider接口
    • 5.7.2 区域性相关的信息
    • 5.7.3 实现字符串的格式化
  • 5.8 字符串的复合格式化
    • 代码在\第5章\Example_17
  • 5.9 字符串内插
    • 使用内插值的字符串需要在前面加上一个"$"符号,字符串内部的格式占位符不再使用索引值,而是将表达式直接包含在一对大括号中。string name=“小明”; string str=$"你好,{name}";
    • 代码在\第5章\Example_18
  • 5.10 生成随机数
    • Random
    • 代码在\第5章\Example_19
  • 5.11 Math类与常用的数学运算
    • 代码在\第5章\Example_20
  • 5.12 与日期时间有关的计算
    • DateTimeTimeSpan两个结构
    • 代码在\第5章\Example_21

chap6 类型转换

  • 6.1 隐式转换
    • **它的转换过程由编译器自动识别,无需特殊处理,而且转换之后不会造成数据丢失,**也叫做“分配兼容性”。
    • 隐式转换也适用于接口与实现接口的类型
    • 代码在\第6章\Example_1
  • 6.2 显式转换
    • 要求在代码中明确地进行类型转换,也叫强制转换。
  • 6.3 可以为null的值类型
    • System命名空间中有一个Nullable<T>结构,该结构使得值类型可以为null。
    • int? x=null; int i = x??16;
    • 代码在\第6章\Example_2
  • 6.4 引用类型的兼容性转换
    • as运算符实现引用类型或Nullable<double>类型的兼容性转换,如果转换成功就返回转换后的对象引用;如果转换失败也不会报错,并返回null。
  • 6.5 类型转换帮助器
    • Convert类和BitCoverter
    • 代码在\第6章\Example_5
  • 6.6 自定义转换
    • implicit:用于声明隐式转换操作
    • explicit:用来声明显式转换操作
    • 使用自定义转换声明,一定要注意以下几点:
      • 必须声明为public
      • 必须声明为静态成员(static)
      • 用要转换的目标类型的名字作为成员名称,把待转换的类型的对象作为参数传入
      • 在成员内部要用return关键字把转换后的对象返回给调用方

chap7 泛型、集合与变体

  • 7.1 泛型类型
    • 7.1.1 泛型与类
      • 代码在\第7章\Example_1
    • 7.1.2 泛型与接口
      • 代码在\第7章\Example_2
    • 7.1.3 泛型与类型成员
      • 代码在\第7章\Example_3
    • 7.1.4 泛型与委托
      • 代码在\第7章\Example_5
    • 7.1.5 泛型约束
      • 代码在\第7章\Example_6
  • 7.2 集合
    • 数组(映射到System.Array类)和System.Collections.ArrayList类都是集合。
    • 7.2.1 普通集合
      • Stack
        • 代码在\第7章\Example_7
      • Queue
        • 代码在\第7章\Example_8
    • 7.2.2 泛型集合
      • List<T>
        • 代码在\第7章\Example_9
      • HashSet<int>
        • 代码在\第7章\Example_11
      • Stack<T>和Queue<T>
        • 代码在\第7章\Example_12
    • 7.2.3 字典
      • 字典中每一个元素都是由两部分组成--键(Key)和值(Value),每个键对应一个值,并且要求键必须唯一。
      • Hashtable
        • 代码在\第7章\Example_13
      • Dictionary<TKey, TValue>
        • 代码在\第7章\Example_14
  • 7.3 自定义排序
    • 代码在\第7章\Example_15 和\Example16
  • 7.4 变体
    • 变体的引入是为了提高泛型类型的变量在赋值的时候可以对类型进行兼容性转换,以扩展泛型的灵活性。
    • 7.4.1 协变与逆变
      • 协变Covariant
      • 逆变Contravariant
    • 7.4.2 类型参数的输入与输出
      • 代码在\第7章\Example_17
    • 7.4.3 必不可少的技巧
      • 输入类型参数(使用in修饰符)都是逆变,输出类型参数(使用out修饰符)都是协变。

chap8 纠错与单元测试

  • 8.1 实时纠正语法错误
    • VS用波浪线提示
  • 8.2 代码调试
    • 8.2.1 断点法
      • 【调试】->【窗口】->【局部变量】
      • 代码在\第8章\Example_1
    • 8.2.2 输出信息法
      • System.Diagnostics命名空间下的Debug类。
      • 代码在\第8章\Example_2
  • 8.3 断言
    • 断言的作用是检验代码的执行是否符合预期的结果。
  • 8.4 使用日志文件
    • System.Diagnostics命名空间下的Trace类。
    • 代码在\第8章\Example_5
  • 8.5 异常处理
    • try{//可能发生异常的代码} catch(<要捕捉的异常类型>){//异常处理代码} finally {//最后处理}
    • 代码在\第8章\Example_6 到 \Example_8
  • 8.6 单元测试
    • Assert类不是.NET框架的类,它随同VS一起安装,该类位于程序集Microsoft.VisualStudio.QualityTools.UnitTestFramework中,Microsoft.VisualStudio.TestTools.UnitTesting命名空间下。
    • 代码在\第8章\Example_9

chap9 匿名方法和Lambda表达式

  • 9.1 匿名方法
    • 匿名方法是不需要命名的,用一个delegate关键字代表方法的名字,没有访问修饰符,也不需要返回类型。
    • Action <string> act = delegate(string arg){Console.WriteLine(arg);};
  • 9.2 Lambda表达式
    • 更为简洁的匿名方法表示法,称为Lambda表达式。
      • =>左边为匿名方法的参数列表,右边为匿名方法的语句。
    • 9.2.1 用于赋值
      • (1)对于没有参数、返回值为void类型的委托Action act1 = () => {Console.WriteLine("没有参数的Action委托。");};
      • (3)对于有返回值的委托(返回值为非void类型)Func<int,int,int>fun1 = (a,b) => {return a*b;};
      • 代码在\第9章\Example_1
    • 9.2.2 用于参数传递
      • 代码在\第9章\Example_2 到\Example3

chap10 集成化查询

  • LINQ(Language-Integrated Query),直译成“语言集成查询。” P262
  • 10.1 LINQ基本语法
    • var result = from str in list select str;
    • var result = from s in list group s by s[0];
    • 以from子句开头,都是以from...in...开头的。
    • 以select或group子句结尾。
    • 10.1.1 对查询结果类型的巧妙处理
    • 10.1.2 延迟执行与强制立即执行
  • 10.2 筛选
    • where var res = from a in arr where a>20 select a;//查询将从arr中逐个取出每个元素,并暂存到变量a,而每一轮所取出来的元素都会经过where子句的筛选,a的值大于20就执行select。
    • 代码在\第10章\Example_4
  • 10.3 排序
    • orderby子句ascending关键字,默认是升序。加上descending关键字就是降序。
    • 代码在\第10章\Example_5
  • 10.4 分组
    • group子句 group emp by emp.Department into eg select eg // 数据分组后将每个分组都存入eg变量中,随后就可以用select子句把存放在eg中的分组选择到查询结果中。
    • IGrouping<TKey,TElement>类型的对象
    • 代码在\第10章\Example_6到 \Example_7
  • 10.5 更复杂的查询
    • 10.5.1 动态创建类型 P276
      • 动态类型使得开发者无需事先去定义类型,就可以根据代码上下文的需要动态地去创建新类型。var newObject = new {Property1="abc",Property2=3000}
    • 10.5.2 联合查询
      • join关键字
      • from category in categories join prod in products on category.ID equals prod.CategoryID//将categories和products两个序列联合一起进行查询。
      • 代码在\第10章\Example_8到 \Example_9
    • 10.5.3 嵌套查询
      • var res = from g in goodsArr let totalQty=(from od in orders where od.GoodsNo == g.GsNo select od).Sum(odr => odr.Qty) select new {g.GsNo, g.GsName, Total=totalQty*g.GsPrice};//使用let关键字来声明临时变量totalQty。
      • 代码在\第10章\Example_10

© 著作权归作者所有

共有 人打赏支持
im天行
粉丝 5
博文 70
码字总数 38633
作品 0
南京
程序员
C#如何设置Excel文档保护——工作簿、工作表、单元格

简介 Excel在工作和学习中应用广泛,是必不可少的数据统计与处理工具。对于一些重要的Excel文件,只供特殊人员查看、编辑或者防止重要数据对外泄露时,就需要设置文档保护,包括设置访问密码...

E_iceblue
06/12
0
0
C# 如何在Excel中绘制图形

本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1、绘制图形 绘制图形并添加文本到图形 添加图片到图形 设置图形阴影效果 2、 提取图形中的文本、图片 3、设置图形的显示...

E_iceblue
07/13
0
0
C# 如何给Excel添加超链接

简介 超链接能够快速地将当前文本或图片链接到指定目标地址,在日常办公中给我们提供了极大的便利。本文将介绍在C#语言中如何通过免费版组件对Excel表格添加超链接,示例中将包含以下要点: ...

E_iceblue
06/20
0
0
C# 操作Excel图形——绘制、读取、隐藏、删除图形

简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1.绘制图形 1.1 绘制图形并添加文本到图形 1.2 添加图片到图形 1.3 设置图形阴影效果 2. 提取图形中的文本、图片 ...

E-iceblue
08/08
0
0
C#/VB.NET 操作Word批注(二)——如何插入图片、读取、回复Word批注内容

序 在前面的文章C# 如何插入、修改、删除Word批注一文中介绍了如何操作Word批注的一些方法,在本篇文章中将继续介绍操作Word批注的方法。分以下三种情况来介绍: 插入图片到Word批注 读取Wor...

E_iceblue
07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

此生1.3

颜值是开胃菜,不要太在意,正餐才是重点。

colinux
今天
1
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部