文档章节

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

im天行
 im天行
发布于 2017/05/25 17:18
字数 2120
阅读 50
收藏 0
点赞 0
评论 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
博文 69
码字总数 38633
作品 0
南京
程序员
C#如何设置Excel文档保护——工作簿、工作表、单元格

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

E_iceblue ⋅ 06/12 ⋅ 0

C# 如何给Excel添加超链接

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

E_iceblue ⋅ 06/20 ⋅ 0

C# 如何在Excel表格中插入、编辑和删除批注

概述 为文档添加必要的批注可以给文档使用者提供重要的提示信息,下面的示例中,将介绍通过C#编程语言来给Excel表格中的指定单元格内容添加批注,此外,对于已有的批注,如果需要修改,我们也...

E_iceblue ⋅ 06/15 ⋅ 0

C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性

前言 通过添加图层,我们可以将文本、图片、表格、图形等元素精确定位于页面指定位置,将这些元素进行叠放、组合形成页面的最终效果。此外,对于页面中已有的图层我们也可以进行设置图层可见...

E_iceblue ⋅ 05/08 ⋅ 0

C# 如何合并、拆分Word文档

概述 出于方便文档管理、存储、传输等目的,我们常会想要将某些文档拆分为多个子文档,或者将多个文档合并为一个文档。在本文中,将介绍对Word文档进行拆分、合并的方法。下面的示例中将包含...

E_iceblue ⋅ 05/11 ⋅ 0

C# 复制Word(复制全部内容、部分内容、页眉页脚)

本篇示例将介绍C# 复制Word文档的方法。根据不同的需要,我们将复制Word文档分三种情况来讲述,具体包括以下几点: 复制整个Word文档 复制文档中的部分内容 复制页眉或者页脚 工具使用 Free...

E_iceblue ⋅ 06/22 ⋅ 0

最新.NET 5.0 C#6 MVC6 WCF5 NoSQL Azure开发120课视频

微软开源实战训练营 内部120课视频学习资料: 从入门到高级开发! 最新.NET 5.0 C#6 MVC6 WCF5 NoSQL Azure开发120课视频 老熊年薪42万,94年专科龚少月薪18900 下载地址:http://pan.baidu....

frankxulei ⋅ 2015/07/15 ⋅ 0

C# PDF Page操作——设置页面切换按钮

概述 在以下示例中,将介绍在PDF文档页面设置页面切换按钮的方法。示例中将页面切换按钮的添加分为了两种情况,一种是设置按钮跳转到首页、下页、上页或者最后一页,另一种是设置按钮跳转到指...

E_iceblue ⋅ 05/02 ⋅ 0

C# 插入Excel页眉、页脚

简介 我们可以通过代码编程来对Excel工作表实现很多操作,在下面的示例中,将介绍如何来添加Excel页眉、页脚。在页眉处,我们可以添加文字,如公司名称、页码、工作表名、日期等,也可以添加...

E_iceblue ⋅ 06/08 ⋅ 0

C# /VB.NET添加、读取Word脚注/尾注

前言 脚注和尾注是对文本的补充说明。脚注一般位于页面的底部,可以作为文档某处内容的注释;尾注一般位于文档的末尾,列出引文 的出处等。在本示例中将介绍如何来添加或删除Word脚注。 工具...

E_iceblue ⋅ 04/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

nodejs __proto__跟prototype

前言 nodejs中完全没有class的这个概念,这点跟PHP,JAVA等面向对象的语言很不一样,没有class跟object的区分,那么nodejs是怎么样实现继承的呢? 对象 对象是由属性跟方法组成的一个东西,就...

Ai5tbb ⋅ 昨天 ⋅ 0

Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库

Q: Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库 A: 执行以下2条命令解决: apt-get install php-mysql service apache2 restart php -m 执行后会多以下4个模块: mysqli mysqlnd...

SamXIAO ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部