程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C# 3.0語言詳解之基本的語言增強

C# 3.0語言詳解之基本的語言增強

編輯:C#基礎知識

  Linq項目簡介和開發環境的搭建

  9月份,微軟推出了一項名為“Linq項目”的新技術,用於在.NET語言中集成數據查詢的功能。您可以從http://msdn.microsoft.com/netframework/future/得到Linq項目的技術預覽版,其中包括大量的介紹文章(英文)和C# 3.0以及VB 9.0的編譯器。

  Linq項目英文全稱為Language Integrated Query,即“語言集成查詢”。Linq基於.NET Framework 2.0,通過對語言的改進,實現在直接在語言中通過類似SQL語句的構造對數據源進行查詢,可查詢的數據源從基本的順序結構(如數組和鏈表)延伸到關系型數據庫(目前是SQL Server,相信將來可以擴展到幾乎所有的關系型數據庫)和XML。

  C# 3.0是C#語言再一次升級後的版本,率先實現了Linq的概念;同樣實現了Linq的還有VB 9.0。從上面提到的網址,讀者可以找到兩種語言的編譯器的技術預覽版。在本文中我們將以C# 3.0為中心討論其開發環境的搭建和語言改進。下載得到的是一個名為“linq preview.msi”(也可能不同)的安裝包,雙擊之後可以和其他軟件一樣進行安裝,此處不再贅述。該安裝包為Visual Studio 2005 Beta 2及以後的版本和Visual C# 2005 Beta 2提供了插件(項目模板)和C#編譯器,該編譯器生成的IL代碼可以直接在.NET Framework 2.0上運行。在安裝了該預覽版後,在新建項目對話框中項目類型列表的Visual C#節點下,我們可以看到一個Linq Preview的條目,並可以在右邊的項目模板中選擇一些桌面項目模板(Linq暫時還不支持Web項目),如下圖所示:

  圖1 - 安裝完Linq的Visual Studio 2005 新建項目對話框

  只要選中了Linq中的項目模板,我們就可以像編寫其他應用程序一樣在Visual Studio 2005中開始編寫C# 3.0應用程序了,在編譯的時候IDE會自動為我們選擇C# 3.0的編譯器。

  現在我們已經可以開始編寫C# 3.0應用程序了,後面的章節中我就將為大家講解C# 3.0所帶來的語言增強。值得說明的一點是,本文是一個系列文章中的一篇,這一系列文章共三個部分。本文為第一部分,講述C# 3.0種基本的語言增強,這些語言增強其實是其他兩個部分的基礎;第二部分將講述C# 3.0中的Lambda表達式,這是匿名方法的自然進化形式,它不僅能將表達式體現為可執行的方法(委托),也能將表達式體現為可以在運行時進行操作的數據結構——表達式樹;最後一部分講述的才是Linq項目中最核心的也是最激動人心的內容——查詢表達式,這是Linq在C#中的實現形式。同時,Linq還針對SQL查詢和XML查詢對.NET Framework基礎類庫進行了擴充,分別稱作DLinq和XLinq,這些內容我將在其他系列文章中為大家講述。

  在本文的講述過程中,限於篇幅,僅提供了簡短的代碼段而不是完整的代碼。不過這些代碼段是從完整的、可正確編譯和運行的代碼中抽取出來的,這些完整代碼可以從這裡下載,並且在本文的第5部分中有關於完整代碼的介紹。

  好了,廢話太多了,讓我們趕快進入C# 3.0的精彩世界。

  具有隱式類型的聲明

  在一個帶有初始化器的聲明語句中,待聲明的變量的類型是顯而易見的——和初始化表達式的結果類型一致。對於這種情況,在C# 3.0中可以使用新增的關鍵字var來代替聲明中的類型,而由編譯器根據初始化表達式來推斷出變量的類型。

  

var i = 5; // int
var d = 9.0; // double
var s = "Hello"; // string
var a = new int[] { 1, 2, 3, 4, 5 }; // int[]
Console.WriteLine("Type of variable <i>: {0}", i.GetType());
Console.WriteLine("Type of variable <d>: {0}", d.GetType());
Console.WriteLine("Type of variable <s>: {0}", s.GetType());
Console.WriteLine("Type of variable <a>: {0}", a.GetType());

  上面的代碼在C# 3.0中是符合語法規則的,前四行代碼就是使用了隱式類型的聲明;而後四行代碼用於在運行時驗證各個變量是否擁有正確的類型。如果在Visual Studio 2005中運行這段代碼(為了能夠看到結果,請使用Ctrl+F5來編譯並啟動程序),會得到下面的結果:

  

Type of variable <i>: System.Int32
Type of variable <d>: System.Double
Type of variable <s>: System.String
Type of variable <a>: System.Int32[]

本文示例代碼或素材下載

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁
  • 尾頁
  • 共3頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved