C#高级编程背书(前言)

编写此篇文章目的作为个人学习的一个笔记和总结
0.1 .NET Core 的世界

  • .Net Core是开源的
  • 可以在Windows和linux上使用
  • 并且使用现代模式。
  • 支持在多个平台上开发

0.2 C#的重要性
C#不仅作为面向对象的通用编程语言,而且是一种基于组件的编程语言,支持属性、 事 件,特性(注解),和构建程序集(包括元数据的二进制文件)

0.3 C# 7 的新特性
C# 6 扩展包括static using、基于表达式的方法和属性、自动实现的属性初始化器、只读自动属性、nameof操作符、空条件运算符、字符串插入、字典初始化器、异常过滤器以及catch中等待
C# 7 的新特性:
0.3.1 数字分隔符 -
0.3.2 二进制字面值
0.3.2 表达式体的成员
0.3.4 out 变量
C# 7 之前 out变量必须在使用前声明,而在C#7中变量可以在使用时声明
0.3.5 不拖尾的命名参数
0.3.6 只读结构(底3章介绍)
0.3.7 in 参数
给参数使用in关键字,这就保证了传递的值类型不会更改,并可以通过引用来传递,以避免复制:

 static void  CantChange(in AStruct s)
  {
      // s can't  chage
  }

0.3.8 Private Protected
Protected internal : 同一程序集派生类可以访问
Private protected : 当类派生自基类并且位于同一程序集时才可访问

0.3.9 目标类型的 Defaul
在 C# 7.1 中,定义了defaul 字面值,与defaul 操作符相比,它允许使用更短的语法。Default操作符总是需要类型的重复,现在不再需要了。这适用于复杂类型:

C# 7.0
int x = defaul(int);
C# 7.2
int x = defaul;

0.3.10 本地函数
在C# 7 中,可以在方法中声明一个本地函数。本地函数只能在方法的作用域内访问:

C# 6
public void someFunStuff()
{
//使用委托 和 拉姆达表达式创建
Func<int,int,int> add = (x,x) => x+y;
}
C# 7  可以在方法中声明一个本地函数
public void someFunStuff()
{
int add (int x, int y) => x+y;
}

0.3.11 元组

在C# 7之前元组是.Net Framework 中的 Tuple 类,可以通过Item1,Item2,Item3等访问元组的成员 ,在C#7 中可以定义元组的成员

C# 6
var tuple=Tuple.Create(42,"astring");
tuple.Item1;
tuple.Item2;

C# 7 
var tuple(n:42,s:"magic");
tuple.n;
tuple.s;

0.3.12 推断元组名
C# 7.1 通过自动推断元组名称来扩展元组,类似于匿名类型。在C#7.0中,元组的成员总是需要命名。如果元组的成员的名称应该与分配给他的属性或字段相同,那么在C#7.1中,元组不提供名称,它就与分配给她的成员的名称相同:

C# 7.0 
var t1=(FirstName:racer.FirstName,Wins:racer.Wins);
int wins=t1.Wins);
C# 7.1
var p1=(racer.FirstName,racer.Wins);
int wins=t1.Wins;

0.3.13 拆解
元组可以拆解成独立得变量,例如:

C# 7
(int n, string s)=(42,",magic");
//如果定义了Deconstruct方法,也可以拆解Person对象:
C# 7
var p1 = new Person("Tom","Turbo");
(string firstName,string lastNeme)=p1;

拆解在第13章

0.3.14 模式匹配
使用匹配模式,is 操作符和switch语句增强为三种模式:const 模式,类型模式和var 模式。
匹配模式在第13章介绍
0.3.15 Throw 表达式
抛出异常只有在语句中才可行,在表达式中是不可行的。当使用构造函数接受参数时,需要对null进行额外得检查,才能抛出ArgumentNullException
在14章中介绍

0.3.16 异步Main()方法
在C# 7 之前 Main方法总是需要声明为类型void。 在C# 7.1中,Main()方法也可以是Task 类型,使用async 和 await关键字:

C# 7.0
static void Main()
{
     SomeMethodAsync();
}
async static Task Main()
{
     await  SomeMethodAsync();
}

异步在第15章介绍

0.3.17 引用语句
TPL 任务并行库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#程序员书籍推荐 1、C#编程 C# Windows Form 程序设计------对熟练掌握WinForm编程基础比较有用,看得时候建议将书的例子从头到尾做一遍,这样会有比较好的收获,否则,学习效果一般。 C# XML从入门到精通 ------这本书前半部分讲的关于XML的基础操作比较有用,后半部分如果对XML有兴趣的话也可以仔细看看,毕竟XML是现在的一个主流方向。 C#高级编程 ------大家公认的一本C#经典教课书,但是太厚了,要有耐心仔细看下去,不然效果就不是很好。 说明:个人认为看编程的书就要敲代码,如果将书的例子做一遍,只看书,效果会大大折扣的,尤其对于刚开始学习编程的人。 2、代码质量 重构-改善既有代码的结构 ------一本与设计模式齐名的经典著作,对你的代码规范、代码质量以及软件设计都有很大的帮助。 个体软件过程 ------一本偏重于软件工程的书,也许你会觉得很无聊,但是如果坚持下来,你会觉得效果真的就如书上所说。我只坚持了一个月,但是感觉收获已经很大。 说明:软件代码质量和个人的编码习惯、编码风格有很大关系,当水平达到一定之后,你的编码习惯、编码风格如果有问题的话,会阻碍你的进一步提高的。编码风格、编码习惯的改进再坚持。 3、设计思想 UML与模式应用 ------我看到的第一本让我佩服的书,也是OO方面我的启蒙书,这本书我看了三遍,笔记记了一大堆,每次都有新的收获,而且最近还计划在仔细阅读一遍! 设计模式 可复用的软件设计基础------一本计算机界公认的经典著作,这本书对于入门者可能有点困难,但是这本书看十遍都不多!绝对的经典!如果以后想做软件开发的话,个人建议将这本书看五遍以上! 面向对象编程导论(原书第3版)------一本对OO讲述比较全面、比较经典的书籍。 说明:设计思想方面,OO是现在的主流,东西很灵活,要多看相关的书籍,多在实践运用。同时,看着部分的书,一定静下心来人真看。 4、软件工程 应用极限编程-积极求胜 ------极限编程现在很火,也是你无法全部接受它,或者你周围的环境不能实施它,但是其的一些思想、最佳实践可以用在你的工作,无论是编码还是设计,对你的思路都回有很大好处的! RUP导论 ------RUP和XP是现在很火的东西了,这本书对RUP进行了很好的描述,书很薄,但是能够让你很好的全面地认识RUP。 用例 通过景环境获得需求------用例分析是RUP很重要的一个环节,这本书讲的很好,无论在需求分析、软件设计方面都会对你有很大启发。 说明:软件工程现在门类很多,可能很多东西我们周围没有使用的环境,或许我们不会从事软件过程管理,但是其的很多思想对我们个人的软件开发都会有很大的帮助! 5、软件测试 软件测试的艺术 ------可以帮你纠正很多对软件测试的误区! 单元测试之道 C#版-使用NUnit-----NUnit可是被誉为.net程序员必备的一项工具啊!很不错的一本书,值得仔细看看! 测试驱动开发 ------经典的书籍,虽然是XP核心的内容之一,但是即使单独运用它,也会给你意外的惊喜。 说明:软件测试并不只是手工点点按钮,其实内容很多的。好的测试员,不仅需要对测试领域有深刻的理解,也需要很高的编程功底。即使你不想从事测试工作,学习这些东西,也会对你的编程水平、代码质量有很大的帮助。 个人认为,看一本书,尤其是经典的著作,看十遍都不为过。同时,看书的过程还要学会发现在其感兴趣的、不了解的内容,然后自己再找相关的书籍看。以上的书只是我看过的、个人认为比较经典的书籍,可能个人情况不一样,兴趣点不一样,对我来说经典的书籍不一定对大家经典,但是,要学会自己查资料、学东西的能力,这才是最重要的。如果你能有毅力用一年或者一年半的时间把上面的书籍吃透,再加上公司项目的锻炼,那恭喜你,你的编程和设计能力在你们同学之肯定可以稳居前10%。 读书,尤其是软件方面的书,其实是很累的,可能读一本书不累,但是如果你能每天坚持三个小时认认真真地看书,能够将一本经典之作认认真真读五遍,而且一直认认真真,那你的毅力真地令人佩服,同时,你的汗水带给你的会是很多的惊喜! 首先让自己喜欢读书,然后学会读书,再学会自己找书读,自己查资料、解决问题……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值