一、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上運行。