程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 3.0新特性初步研究 Part1:使用隱含類型的本地變量

C# 3.0新特性初步研究 Part1:使用隱含類型的本地變量

編輯:關於C語言

C# 3.0給我們帶來了很多新特性,其中增加了很多“動態”內容,
讓我們使用起來更加Sharp!

我在這裡簡單的介紹一下C# 3.0規范中的一些“新鮮”內容,小弟才疏學淺,望大家海涵!

Part1:使用隱含類型的本地變量

在C#3.0之前的C#語言中,我們在聲明變量的時候都必須顯式的指定變量類型(int,string之類的)
我們一般都是這樣寫的:


 1static void InitAndPrint()
 2{
 3       int x = 7;
 4       string s = "This is a string.";
 5       double d = 99.99;
 6       int[] numbers = new int[] { 0, 1, 2, 3, 4, 5, 6 };
 7
 8       Console.WriteLine("x: " + x);
 9       Console.WriteLine("s: " + s);
10       Console.WriteLine("d: " + d);
11       Console.WriteLine("numbers: ");
12       foreach (int n in numbers) Console.WriteLine(n);
13}

而在C# 3.0中,我們這樣寫:


 1static void InitAndPrint()
 2        {
 3            var x = 7;
 4            var s = "This is a string.";
 5            var d = 99.99;
 6            var numbers = new int[] { 0, 1, 2, 3, 4, 5, 6 };
 7
 8            Console.WriteLine("x: " + x);
 9            Console.WriteLine("s: " + s);
10            Console.WriteLine("d: " + d);
11            Console.WriteLine("numbers: ");
12            foreach (int n in numbers) Console.WriteLine(n);
13        }
大家應該可以注意到,原來的什麼int、string之流都變成了var關鍵字了,甚至連數組的聲明都不例外。
但是我們應該明白一點:
這種機制和Perl之類的var內心有著根本性的不同,雖然我們代碼中寫的是var,但是對於編譯器來說,
通過變量的初始化表達式已經“正確的識別出了變量的類型”,所以在編譯生成的MSIL中,我們是沒有var類型出現的,
而是使用相應的數據類型來代替。
也就是說:
1、var標記的變量一定要初始化!!
2、對於集合類型的var在初始化的時候一定要指明類型(例如使用List<int>())

對於一些很長的,很復雜的變量聲明來說,使用隱含類型聲明可以有效的降低代碼量,也避免了一些錯誤的出現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved