C#3.0之匿名型別

來源:互聯網
上載者:User

VS2008 Beta2 終於出來了,迫不及待的想體驗一下。這裡記述一些我的使用體驗和大家分享。
在這裡我首先從C#3.0的語言本身來走馬觀花來體驗語言層面給我帶來那些驚喜。
從語言本身來看C#3.0直接帶給我們的新特性主要包括一下幾個方面:
1、隱含類型局部變數
2、 擴充方法
3、對象與集合初始化器
4、匿名型別
5、查詢運算式(Linq)
這些新的特性都是在原來C#2.0的基礎上進一步擴充演變過來的,很多事情通過讓編譯器去做而簡化我們程式員的工作,這樣可以減輕程式員的工作量而提高工作效率。
首先我們來體驗一下,隱含類型局部變數這個特性:
            var sStr = "My String";
            var iInt = 100;
            var fFloat = 2.4;
            var arr = new[] { 1,2,3,4,5,6,6,7,8,9,10};
這裡的變數聲明都是合法的,前面的var 是C#3.0新增的關鍵字,有了這個關鍵字,編譯器在編譯這段代碼時會自動的根據後面初始化的語句來推斷出變數的類型。
var sStr = "My String";這條語句在編譯器執行是會推斷編譯出 string sStr="My String"; 這裡會將var 替換成 string 這裡的var 不是一個具體的資料類型,它僅僅是個關鍵字,我們可以理解成預留位置。
同樣的道理 var iInt = 100;會編譯成 int iInt=100;
                        var fFloat = 2.4;會編譯成 float=2.4;
                        var arr = new[] { 1,2,3,4,5,6,6,7,8,9,10};會編譯成 int [] arr = new[] { 1,2,3,4,5,6,6,7,8,9,10};
注意:
(1)這個var只用於局部變數,可以用於foreach語句,如foreach(var i in arr) 這時我們可以不用關心arr是什麼類型;
(2)初始話語句必須是運算式,必須是編譯器可以推斷出來的類型,如果這樣寫是不合法的var a=null; 因為無法推斷出null的類型是什麼。

下面作個小小的例子加以驗證:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CApp
{
    class Program
    {
        static void Main(string[] args)
        {            
            var i = 30;//隱式類型
            var b = 40;
            var arr = new[] { 1, 2, 3, 4, 4, 4, 44, 43, 343, 8 };
            foreach (var j in arr) 
         {
                Console.WriteLine(j);
            }
            Console.WriteLine(i);
            Console.WriteLine(b); 
                                                             
        }
    }
}

輸出結果:
1
2
3
4
4
4
44
43
343
8
30
40

                          

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.