1、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#语言演变进化,也包括了函数式编程的理念。
2、C# 6的新特性
using static System.Console;
public bool IsSquare(Rectangle rect) => rect.Height == rect.Width; =>为Lambda操作符
public string FullName => Value + "Name:";
public class Person{ public int Age {get;set;}=42;}
public BookId{get;}
6)nameof运算符
public void Method(object obj)
{
if (obj is null)
{
throw new ArgumentNullException(nameof(obj));
}
}
7)空值传播运算符
int?age=p?.p.Age;
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);
}
3、 .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可以编译为本地代码,得到更大的性能提升。
4、编程应用方向
编写Web页面、WPF应用程序、Rest Web服务、分布式应用程序的组件、数据库访问组件、传统的Windows桌面应用程序,以及可以联机/脱机运行的UWP程序。
需要注意:WPF应用程序需要完整的.Net Framework,UWP应用程序使用.Net Core时,还是需要Windows运行库,所以WPF和UWP应用程序仅在Windows上运行。