一、C#编程语言
1)C#是由微软公司开发团队设计出品,是一种安全的、稳定的、简单的、优雅的,彻底面向对象的编程语言,以其强大的操做能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程支持,成为.Net开发的首选编程语言。数据库
2)C#在继承了C和C++语言强大功能的同时,去掉了它们的一些复杂特性;另外,C#综合了Visual Basic简单的可视化操做和C++的高运行效率。编程
3)C#语言支持属性、事件、特性(注解)和构建程序(包括元数据的二进制文件)。
4)C#支持泛型、语言集成查询(LINQ ,Langage Integrated Query)、async关键字Lambda表达式、动态特性和更简单的异步编程(如async、await关键字),随着C#语言演变进化,也包括了函数式编程的理念。安全
二、C# 6的新特性框架
1)静态的Using声明 using static System.Console;异步
2)表达式体方法 public bool IsSquare(Rectangle rect) => rect.Height == rect.Width; =>为Lambda操做符 async
3)表达式体属性 public string FullName => Value + "Name:";编程语言
4)自动实现的属性初始化器 public class Person{ public int Age {get;set;}=42;}分布式
5)只读的自动属性 public BookId{get;}ide
6)nameof运算符 模块化
public void Method(object obj)
{
if (obj is null)
{
throw new ArgumentNullException(nameof(obj));
}
}
7)空值传播运算符
a)简化了空值检查:int?age=p?.p.Age;
b)触发事件:handle?.Invoke(source,e);
8)字符串插值
删除了对String.Format的调用:public override ToString()=>$"{Title} {Publisher}";
9)字典初始化器
相似于集合初始化器
var dict=new Dictionary<int,string>()
{
[3]="Three",
[7]="Seven"
};
10)异常过滤器
try
{
//etc
}
catch(MyException ex) when(ex.ErrorCode == 405)
{
//etc
}
等价于:
try
{
//etc
}
catch(MyException ex)
{
if (ex.ErrorCode == 405) throw;
//etc
}
11)catch中await
try
{
//etc
}
catch(MyException ex) when(ex.ErrorCode == 405)
{
await new MessageDialog().ShowAsync(ex.Message);
}
三、 .Net Framework &.Net Core
1).Net Framework要求把开发过程当中使用的.Net 运行库版本安装到目标系统上;而.Net Core,框架(包括运行库)是与应用程序一块儿交付的,即便更新运行库,也不影响现有的应用程序。
2).Net Framework随功能增长及版本更新,愈来愈大;而.Net Core是以模块化方法设计,将该框架分红数量众多的Nuget包,依据应用程序决定须要什么包。
3)两者相互独立;同时.Net Core是开源的,能够快速更新和发布,且支持多个平台(win、Linux&Mac等)。
4).Net Core能够编译为本地代码,获得更大的性能提高。
四、编程应用方向
编写Web页面、WPF应用程序、Rest Web服务、分布式应用程序的组件、数据库访问组件、传统的Windows桌面应用程序,以及能够联机/脱机运行的UWP程序。
须要注意:WPF应用程序须要完整的.Net Framework,UWP应用程序使用.Net Core时,仍是须要Windows运行库,因此WPF和UWP应用程序仅在Windows上运行。