Share via


Visual C# 的新功能

更新: 2008 年 7 月

Visual C# 2008 Service Pack 1 的新功能

C# 語言

功能

說明

各種編譯器的改進

已針對 C# 編譯器做了許多改良,以移除與語言規格不一致的情形。某些改良具有重大的突破,而其他部分則只是軟體更新或加強功能。如需重大變更的詳細資訊,請參閱 Visual C# 2008 的重大變更。如需 Service Pack 1 中其他 Bug 修正的詳細資訊,請參閱適用於 Visual C# 之 Visual Studio 2008 Service Pack 1 Beta 的變更和修正問題清單

Visual C# IDE

功能

說明

即時語意錯誤

Visual C# 2008 Service Pack 1 加入了「即時語音錯誤」這項新功能,可提供更完整的程式碼錯誤資訊集。這項功能會偵測運算式層級的錯誤,這項錯誤先前只有在建置 (Build) 後才會回報。它會在您撰寫程式碼時,以紅色波浪形底線指出錯誤的地方。如需波浪型底線的詳細資訊,請參閱編輯程式碼 (Visual C#)

LINQ 查詢偵錯

LINQ 查詢的偵錯功能在 Service Pack 1 中已經大幅提升。

  • 您現在可以在逐步執行查詢運算式中的各行運算式時,於 [監看式] 視窗和 [DataTips] 中檢視範圍變數。

  • 偵錯工具不再隱藏匿名型別名稱,並且可在轉型及執行個體化 (Instantiation) 時,顯示這些匿名型別名稱。如此一來,便可以在偵錯工作階段 (Session) 期間建立匿名型別的暫存執行個體 (Instance)。可正確評估匿名型別的型別轉換。

  • 針對 [加入至監看式] 而產生的字串已經過改良,相較於 Visual Studio 2008 原始發行版本 (Release Version),可以產生能接受更多次評估的運算式。

如需詳細資訊,請參閱 Microsoft 網站上的 Sree 的程式碼空間冒險 (英文)。

可顯示方案中所有檔案的工作清單註解

在舊版 Visual Studio 中,只會以開啟檔案中的工作註解填入工作清單。在 Visual Studio 2008 Service Pack 1 中,C# 整合式開發環境 (Integrated Development Environment,IDE) 會在方案中顯示所有開啟和關閉檔案的工作註解。如需詳細資訊,請參閱 HOW TO:建立工作清單註解

Windows Presentation Foundation 專案中的重新命名重構功能

Visual Studio 2008 Service Pack 1 可讓您使用重新命名重構功能,重新命名 XAML 中定義的參考。如需重新命名重構功能的詳細資訊,請參閱重新命名

LINQ

功能

說明

改良 [M:Enumerable.Cast`1] 方法

在 Visual C# 2008 Service Pack 1 中,藉由停用基本值轉換及明確定義的使用者轉換,改善了 Enumerable.Cast<T> 方法的效能。從 int 資料型別轉換為 long 資料型別就是基本值轉換的其中一個範例。

改善 [M:Enumerable.Where`1] 和 [M:Enumerable.Select`1] 方法的效能

在 Visual C# 2008 Service Pack 1 中,改善了 Where 標準查詢運算子和 Select 標準查詢運算子的效能。

Visual C# 2008 原始發行版本的新功能

C# 3.0 語言

C# 3.0 語言和編譯器引入許多新的語言功能。新的語言建構個別在各種內容中相當有用,集合起來可以執行 Language-Integrated Query (LINQ)。如需 LINQ 的詳細資訊,請參閱 LINQ 專案 (英文)。

下表列出新的 C# 3.0 語言功能:

功能

說明

隱含型別區域變數和陣列

與區域變數一起使用時,var 關鍵字會指示編譯器從初始化陳述式右側的運算式,推斷變數或陣列項目的型別。

物件初始設定式

啟用物件初始設定式而不需要明確呼叫建構函式。

集合初始設定式

啟用集合初始化與初始化清單,而不需要特定呼叫 Add 或其他方法。

擴充方法

使用可以用執行個體方法語法叫用的靜態方法,擴充現有的類別。

匿名型別

啟用即時建立未命名結構型別,該型別可以使用 var 加入至集合以及存取。

Lambda 運算式

啟用其輸入參數可以繫結至委派或運算式樹狀架構的內嵌運算式。請參閱匿名函式 (C# 程式設計手冊)

查詢關鍵字

指定查詢運算式中子句的關鍵字:

  • from 子句

  • where 子句 (選擇性)

  • ordering 子句 (選擇性)

  • join 子句 (選擇性)

  • select 或 group 子句

  • into 子句 (選擇性)

自動實作屬性

使用簡化的語法宣告屬性。

部分方法定義

部分型別現在可能包含部分方法。

C# 3.0 編譯器

  • /win32Manifest/noWin32Manifest 編譯器參數。
    新的編譯器參數是用於指定 Windows Vista 上執行之程式的要求執行層級。

Visual C# IDE

功能

說明

多目標

Visual Studio 2008 可以讓您為專案指定 .NET Framework 的版本,例如 .NET Framework 2.0、3.0 或 3.5。應用程式的 .NET Framework 目標是 .NET Framework 的版本,電腦上必須具備此版本,才能在該電腦上執行應用程式。如需詳細資訊,請參閱以特定的 .NET Framework 為目標平台

新的專案類型和範本

針對 Windows Presentation Foundation、Windows Communication Foundation 和 Web 專案提供數個新的專案範本。如需詳細資訊,請參閱Visual C# 版本的專案範本Visual Studio 中的預設專案範本

C# 3.0 的 IntelliSense 支援

Visual C# 程式碼編輯器提供陳述式完成和「快速諮詢」,以支援下列 C# 3.0 中的新語言建構:

  • 隱含型別區域變數

  • 查詢運算式

  • 擴充方法

  • 物件/集合初始設定式

  • 匿名型別

  • Lambda 運算式

  • 部分方法

如需詳細資訊,請參閱 Visual C# IntelliSense

C# 3.0 的重構支援

已更新重構功能:[重新命名]、[簽章變更]、[擷取方法] 及 [升級區域變數],以支援下列新語言建構:

  • 查詢運算式

  • 擴充方法

  • Lambda 運算式

此外,重構提供新的選項和警告,協助防止重構動作出現非預期的後果。如需詳細資訊,請參閱重構

格式化程式碼

程式碼編輯器針對數個新的 C# 3.0 語言建構 (包含查詢運算式) 支援格式化選項。如需詳細資訊,請參閱選項對話方塊、文字編輯器、C#、格式

組織 Using 陳述式

Visual C# 程式碼編輯器可提供簡易的方法來排序 using 和 extern 宣告,以及移除未使用的宣告。

請參閱

其他資源

Language-Integrated Query (LINQ)

C# 會成為功能性語言嗎?(英文)

.NET Framework 3.5 的新類別庫

變更記錄

日期

記錄

原因

2008 年 7 月

加入有關 Visual C# 2008 Service Pack 1 的章節。

SP1 功能變更。