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的新特性

            1)静态的Using声明    using static System.Console;

            2)表达式体方法       public bool IsSquare(Rectangle rect) => rect.Height == rect.Width;   =>为Lambda操作符

            3)表达式体属性       public string FullName => Value + "Name:";

            4)自动实现的属性初始化器 public class Person{ public int Age {get;set;}=42;}

            5)只读的自动属性               public BookId{get;}

            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);

              }


       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上运行。