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

C# 3.0新特性初步研究 Part5:匿名類型

編輯:關於C語言

匿名類型(Anonymouse Type)——這年頭什麼多系都匿名了 : )
在初始化的時候根據初始化列表自動產生類型的一種機制。

典型的代碼:
1class Program
2    {
3        static void Main(string[] args)
4        {
5            var x = new { a = 3, b = 5, c = "some text" };
6            Console.WriteLine(x.a.ToString());
7        }
8    }很奇怪吧~~~
不要認為這個var x真的是沒有類型,其實這又是一個編譯器的魔術,
當我們編譯這段代碼的時候,編譯器會自動產生以下類型定義:
 1class __Anonymous1
 2{
 3    private int _a = 3;
 4    private int _b = 5;
 5    private string _c = “some text”;
 6
 7    public int a { get { return _a; } set { _a = value; } }
 8    public int b { get { return _b; } set { _b = value; } }
 9    public int c { get { return _c; } set { _c = value; } }
10}
11
這樣就不會和我前面所的var必須初始化,並且必須讓編譯器“猜得出”正確的類型這一句話產生矛盾。
PS:再過20年估計編譯器就什麼都可以做了,還是行業專家,“老板,買一個針對電信行業的編譯器,要帶SP增值服務擴張包的”

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