這篇文章主要講解了“如何理解C#對象集合初始化器”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何理解C#對象集合初始化器”吧!
創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、成都網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元侯馬做網(wǎng)站,已為上家服務,為侯馬各地企業(yè)和個人服務,聯(lián)系電話:13518219792
C#語言還是比較常見的東西,這里我們主要介紹C#對象集合初始化器,包括介紹編譯器自動的調(diào)用了List的無參構造方法等方面。
在寫一些實體類的時候,我們往往在寫構造方法的時候思考很長時間,除了一個無參構造器外還在想需要寫幾個構造器呢?哪些參數(shù)是需要初始化的?,F(xiàn)在你再也不需要為這事煩惱了。C# 3.0為你提供了C#對象集合初始化器:
public class Book { /// /// 圖書名稱 /// public string Title { get; set; } /// /// 單價 /// public float Price { get; set; } /// /// 作者 /// public string Author { get; set; } /// /// ISBN號 /// public string ISBN { get; set; } } //對象初始化器 Book book = new Book { Title="Inside COM",ISBN="123-456-789"};
現(xiàn)在你想初始化幾個就初始化幾個,不需要出現(xiàn)這種情況:
public Book():this("") { } public Book(string title):this(title,0) { } public Book(string title, float price):this(title,price,"") { } public Book(string title, float price, string isbn) { this.Title = title; this.Price = price; this.ISBN = isbn; }
List<>g__initLocal0 = new List (); Book <>g__initLocal1 = new Book(); <>g__initLocal1.Title = "Inside COM"; <>g__initLocal1.ISBN = "123-456-789"; <>g__initLocal1.Price = 20f; <>g__initLocal0.Add(<>g__initLocal1); Book <>g__initLocal2 = new Book(); <>g__initLocal2.Title = "Inside C#"; <>g__initLocal2.ISBN = "123-356-d89"; <>g__initLocal2.Price = 100f; <>g__initLocal0.Add(<>g__initLocal2); Book <>g__initLocal3 = new Book(); <>g__initLocal3.Title = "Linq"; <>g__initLocal3.ISBN = "123-d56-d89"; <>g__initLocal3.Price = 120f; <>g__initLocal0.Add(<>g__initLocal3);
從上面的代碼來看,編譯器自動的調(diào)用了List的無參構造方法,然后實例化一個個的Book,再一個個的Add進去,和我們原來的做法沒有什么不同,但是,這是編譯器為我們做的,所以簡省了我們很多的編碼工作。
C#對象集合初始化器就算介紹完了。有人也許會說,不就是個syntx sugar么,有什么。是的,確實是個語法糖。在編譯器發(fā)展早期,編譯器科學家門一直在想方設法的優(yōu)化編譯器生成的代碼,這個時候,編譯器做的主要是對機器優(yōu)化,因為那個時候機器的時間非常寶貴,機器運算速度也不快,今天我們有了足夠好的機器了(但并不是說我們可以不關注性能的編寫程序),而且作為編寫軟件的人來說,比機器的時間寶貴得多,所以今天的編譯器也在向人優(yōu)化了,從編程語言的發(fā)展之路來講,今天的編程語言比昨天的語言更高級,也更人性化了,我們只要編寫更少的代碼,更符合人的思維的代碼,而只要關注我們值的關注的地方。體力活兒就交給編譯器吧。
感謝各位的閱讀,以上就是“如何理解C#對象集合初始化器”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對如何理解C#對象集合初始化器這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!