欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#的var關(guān)鍵字如何使用

今天小編給大家分享一下C#的var關(guān)鍵字如何使用的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、甘泉網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計電子商務(wù)商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為甘泉等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

var關(guān)鍵字用來隱式地聲明一個數(shù)據(jù)類型,變量類型是在編譯期確定的,而不是在運行時確定的

聲明一個var變量a,把整型數(shù)10賦值給a,接著把一個字符串賦值給變量a。運行發(fā)現(xiàn)報錯:無法將類型string隱式轉(zhuǎn)換為int。

聲明一個var變量a,把整型數(shù)10賦值給a,接著把一個字符串賦值給變量a。運行發(fā)現(xiàn)報錯:無法將類型string隱式轉(zhuǎn)換為int。

C#的var關(guān)鍵字如何使用

這說明:用var聲明一個變量時,雖然不是顯式聲明,但在編譯期,已經(jīng)確定了變量的類型。

通過反編譯同樣可以證明以上推斷。

→把a = "abc";這行代碼去掉,并生按F6生成解決方案。
→打開"VS2012開發(fā)人員命令提示",輸入如下命令

C#的var關(guān)鍵字如何使用

→在"解決方案資源管理器"中右鍵項目的名稱,選擇"在文件資源管理器中打開文件夾",再點擊bin,Debug文件夾,在地址欄中賦值Debug文件夾的路徑
→點擊"IL DASM"的文件--打開,輸入剛才拷貝的Debug文件夾路徑,再選擇.exe后綴的可執(zhí)行文件,雙擊"Main:void(string[])"。在IL代碼中:

C#的var關(guān)鍵字如何使用

可以看出:變量a已經(jīng)是Int類型,并且是一個局部變量。

var關(guān)鍵字讓編碼更簡短

對于一些名稱比較長的類,當創(chuàng)建類實例的時候,用var關(guān)鍵字看上去更簡短。當然這個理由是比較牽強的~~

     class Program
    {
        static void Main(string[] args)
        {
            HelloIHaveALongLongName<string, string> obj = new HelloIHaveALongLongName<string, string>();
        }
    }
    public class HelloIHaveALongLongName<T, T>
    {
        public string Name;
    }

如果使用var關(guān)鍵字,就變成:

var obj = new HelloIHaveALongLongName<string, string>();
obj.Name = "hello";

可見,用var關(guān)鍵字,讓寫法更簡短,并且var變量是一個強類型。

var關(guān)鍵字與匿名類型

通過LINQ表達式返回一個匿名類型。

        static void Main(string[] args)
        {
            string[] strs = {"hello", "world", "nice", "to", "meet", "you"};
            object o = from s in strs
                where s.Length > 3
                select new {s.Length, s};
        }

以上,object類型變量o并不是一個強類型變量。

C#的var關(guān)鍵字如何使用

如果我們用強類型的類來接收LINQ返回的集合。

    class Program
    {
        static void Main(string[] args)
        {
            string[] strs = {"hello", "world", "nice", "to", "meet", "you"};
            IEnumerable<SomeData> o = from s in strs
                where s.Length > 3
                select new SomeData() {Key = s.Length, Value = s};
            foreach (SomeData item in o)
            {
                Console.WriteLine(item.Key);
            }
        }
    }
    public class SomeData
    {
        public int Key;
        public string Value;
    }

以上,在IEnumerable<SomeData>類型集合中,每一個集合元素都是強類型。

如果用var關(guān)鍵字來接收LINQ返回的匿名類型集合。

    class Program
    {
        static void Main(string[] args)
        {
            string[] strs = { "hello", "world", "nice", "to", "meet", "you" };
            var o = from s in strs
                    where s.Length > 3
                    select new { Key = s.Length, Value = s };
            foreach (var item in o)
            {
                Console.WriteLine(item.Key);
            }
        }
    }

以上,var類型變量o接收匿名類型集合,該集合的每個元素也是強類型。也就是說,編譯器在編譯的時候自動推斷類型。

以上就是“C#的var關(guān)鍵字如何使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:C#的var關(guān)鍵字如何使用
鏈接URL:http://www.chinadenli.net/article38/ieoopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航標簽優(yōu)化靜態(tài)網(wǎng)站ChatGPTApp設(shè)計域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)