C 語言中的const 解析

C 語言中 const 關鍵字在修飾普通類型名和指標時存在較大的區別,容易混淆,解析如下:(1)修飾普通類型時,可以與類型名交換位置,二者等價。    const int i; int const i;  (2) 在修飾指標時,不可以互換,因為位置不同,意義不同。              const int *p1; int const *p2;                  以上二者等價,p1, p2 為指標,指向 const int

C#可空類型學習

一、定義:      C#可空類型的定義很簡單,一個簡單類型的符號加一個問號即可,如:             int? cc      這樣就定義了一個可空類型。二、初始化:      可空類型的初始化與非可空類型的初始化有一個最大的不同就在於可以為可空類型分配null值,比如以下的方法都是可以的:             int? cc=10;             int? cc=null;(非可空類型絕對不能這樣初始化)三、使用      

c#語言的特點

C#在帶來對應用程式的快速開發能力的同時,並沒有犧牲C與C++程式員所關心的各種特性。它忠實地繼承了C和C++的優點。如果你對C或C++有所瞭解,你會發現它是那樣的熟悉。即使你是一位新手,C#也不會給你帶來任何其它的麻煩,快速應用程式開發(Rapid Application Development,RAD)的思想與簡潔的文法將會使你迅速成為一名熟練的開發人員。

Head First C# 中文版 第10章 異常處理 page468

 蜜蜂需要一個新的OutOfHoney異常你的類可以拋出自訂的異常。比如說,如果你在方法接受到了一個null參數,而需要的是一個值,在此處與.NET中的方法拋出一樣的異常是很常見的:throw new ArgumentNullException( );但是有時候你會想要讓程式根據遇到的某種特殊情況來拋出異常。舉例來說,我們建立的蜂窩中的蜜蜂,它們根據自己的體重以不同的速率消耗蜂蜜。如果沒有蜂蜜可消耗了,讓蜂窩拋出異常是很說得通的。你可以建立一個自訂異常來處理這種特殊情況的錯誤,只需要讓你自己的類

Head First C# 中文版 第12章 回顧與前瞻 page535

 我們在構建一個回合制的系統每個對象的Go()方法都應該在我們的模擬器中的每一輪,或者叫做每一個回合中被調用。每一輪可以是任意的一段時間...比如說,一輪可以是10秒,或者60秒,或者是10分鐘。每一輪在動畫中表現為一幀,所以世界每一輪只改變一小點。關鍵是每一輪都會影響世界中的每一個對象。蜂巢每一輪檢查是否需要增加更多的蜜蜂。然後每隻蜜蜂運行一輪,向著目的地移動一點點距離或者是做一個小動作,並變老。然後每朵花運行一輪,產生一點花粉並變老。這正是World做的:它確定每一次World的Go()方法

Head First C# 中文版 第12章 回顧與前瞻 page531

真正的代碼是一點一點寫出來的如果可以一次性寫完一個類的代碼,編譯,測試,然後把它放到一邊,再來寫另一個類的話自然是很好的。不幸的是,這是不可能的。通常,你會像我們這一章一樣寫代碼:一點一點的。我們可以建立差不多整個的Flower類,但是到了Bee類的時候,我們就還有一些工作要做(多數就是告訴蜜蜂在每一種狀態之下做什麼)。現在,對於Hive來說,我們需要填充很多空方法。還有,我們還沒有把Bee和Hive聯絡起來。還有一個麻煩問題就是如何成千次的調用Go()方法。           首先設計,然後

Head First C# 中文版 第12章 回顧與前瞻 page537

 我們在模擬器中用到的物件導向的一個重要原則就是封裝。看看你可不可以根據觀察我們已經寫過的類來找出每個類中兩個封裝的例子。下面是我們想出來的,你有沒有想出別的來?Hive:蜂巢的Locations字典是私人的;它給蜜蜂提供了一個添加蜂蜜的方法。Bee:蜜蜂的位置和年齡都是唯讀,這樣其他類將無法寫這些資料。Flower:花朵提供了採集花粉的方法;花朵的布爾型alive欄位是私人的。  問:為什麼不用foreach迴圈來移除死掉的花朵和退休的蜜蜂呢?答:foreach是用來迭代集合的,在其中無法移除

Head First C# 中文版 第12章 回顧與前瞻 page521

  任何使用了Point類型的類檔案中都需要添加using System.Drawing;。③建立構造方法Flower類的構造方法需要接受一個Point來指明花朵的位置,還要接受一個Random類的執行個體。你應該可以用這些變數來設定花朵的位置,把年齡設定為0,設定花朵為活著的,並且把其花粉量設定為花朵的初始花粉量。由於劃分還沒有被採集過,所以要把這個變數設定對。最後,算出花朵的壽命。下面一行代碼可以協助你:lifeSpan = random.Next(LifeSpanMin, LifeSpan

Head First C# 中文版 第10章 異常處理 page467

 一個類拋出異常,另一個類捕獲你在建立類的時候並不知道它會怎麼樣的被使用。有時候其他人會以一種導致問題的方式來使用你的類--有時候你自己也會這麼做!這時就用到異常了。拋出異常的目的就是要去發現有什麼問題,以便做一些計劃。一般你不會看到一個方法自己拋出異常並捕獲它。通常是一個方法拋出異常然後另一個方法捕獲--這個方法又通常是另一個對象中的。不要如下這樣做...沒有好的異常處理,一個異常會把整個程式都拖垮。下面是一個沒有異常處理的例子: ...要如下這樣做BeeProfile對象可以截獲異常並寫一條

Head First C# 中文版 第12章 回顧與前瞻 page523

花之生死我們的花朵會經過一個基本的過程,生長,增加花粉,收穫花粉,並且最終死掉:  問:NectarHarvested變數在類中似乎除了給它增加值之外就沒有用到,這個變數是做什麼用的呢?答:好眼力!我們是提前做了計劃的,模擬器會監視花朵們一共產出了多少花粉,以供統計之用。所以暫時把它放一下,我們其他的類很快就會用到它。問:這些唯讀自動屬性是怎麼回事?答:記得第五章的隱藏私人變數嗎?這是個好傳統。花朵應該可以管理這些值,所以我們讓它們是唯讀。其他的對象,比如蜜蜂和蜂窩,應該可以讀取這些屬性而不可以

Head First C# 中文版 第12章 回顧與前瞻 page539

 問:為什麼在GetLocation()方法中拋出了一個異常呢?答:為了防止傳入的參數不合法。這樣在傳入的參數不合法的時候就會爆出異常,可以協助你調試錯誤。問:既然我們不把蜜蜂繪製出來那為什麼還要把位置儲存在Point對象裡面呢?答:無論繪製與否,蜜蜂都需要記錄自己的位置。這樣就可以知道自己是否到達了目的地。問:為什麼要把位置儲存在Point裡面呢?Point不就是用來繪製的嗎?答:對的,所有的可視化控制項都是使用Point來儲存位置。然而,.NET如此使用它並不意味著我們不可以用它來儲存位置。

Head First C# 中文版 第12章 回顧與前瞻 page541

 ③更新World的代碼來把自己傳遞給Hive更新World的代碼來讓它在建立新Hive的執行個體的時候把自己的引用傳遞進去。 ④給Hive可以建立的蜜蜂數一個上限Hive類有一個MaximumBees常量,它決定了Hive可以支援多少蜜蜂(蜂巢內和蜂巢外都算)。現在Hive可以訪問World了,你應該可以運用這個約束了。 ⑤Hive建立蜜蜂的時候,讓World知道World類保持所有的存在的蜜蜂。當Hive建立幼蜂的時候,確保這個蜜蜂被添加到World保持的全域列表裡面去。

Head First C# 中文版 第10章 異常處理 page471

 ■如果在運行時某些事情出錯的話,任何語句都會拋出異常。■用try/catch塊來處理異常,未處理的異常會是你的程式停止並彈錯誤視窗。■try塊中的任何異常都會導致程式的執行跳轉到catch塊中的第一個語句。■Exception對象給你提供關於捕獲的異常的資訊。如果你在catch塊中聲明了Exception變數的話,該變數將會包含try塊中拋出的任何異常的資訊。■你可以捕獲很多種的異常。每種異常都是繼承自Exception類的。不要捕獲Exception,去捕獲特定種類的異常。■每個try塊可以

Head First C# 中文版 第12章 回顧與前瞻 page528

 P.A.H.B(Programmers Against Homeless Bees)我們已經有了蜜蜂和充滿花粉的花朵。我們需要寫一些代碼來讓蜜蜂採集花粉,但是在此之前,蜜蜂最初是在哪兒被建立的呢?它們又把花粉帶到哪兒去?這時就用到了Hive類(蜂巢)。蜂巢不僅僅是蜜蜂們的歸宿。它內部有很多地點,每一個地點都對應著世界中的不同的座標。裡面有入口和出口,還有生育幼蜂的保育場所,還有把花粉轉化為蜂蜜的蜂蜜工廠。 蜂巢靠著蜂蜜來維持運行蜂巢扮演的另一個角色就是要用蜂蜜來維持蜂巢的運轉。蜂巢的運轉需要蜂

Head First C# 中文版 第10章 異常處理 page472

 預防異常:實現IDisposable來自己做清理流很好用,因為它們已經有代碼來在它們被處置的時候關閉自己。但是如果你自己寫了類需要在被處置的時候做某些處理呢?如果你自己寫的類中的某些代碼可以再using中得以運行豈不是很酷?使用IDisposable介面就可以在C#中做到這一點。只有實現了IDisposable介面的類才可以using中使用,否則無法編譯。實現IDisposable介面,把你自己的清理代碼寫在Dispose()方法中,就象下面這樣: 我們可以使用多重的using語句。首先,使用

Head First C# 中文版 第12章 回顧與前瞻 page529

  編寫Hive的代碼是你的任務。①編寫Hive類的架構代碼就像編寫Flower類時一樣,你應該開始先給Hive類寫一個骨架代碼。類圖如右圖所示。把Honey設定為唯讀自動屬性,locations要是私人的,beeCount只在內部使用,所以也可以是私人的欄位。②定義Hive的常量初始蜜蜂數(6)需要一個常量,開始時候的蜂蜜數量(3.2),蜂巢最多可以承載的蜂蜜數(15),花粉向蜂蜜轉化率(0.25),最大蜜蜂數(8),可以生育幼蜂的最小蜂蜜數(4)。你需要給這些常量想出好的名字和適合的類型。關

淺析Attribute在C# WinForm控制項開發中的使用

Attribute在C# WinForm控制項開發中的使用是如何的呢?我們在之前的文章中提到了Attribute,那麼具體的在開發實戰中是如何運用的呢?需要注意什麼呢?來讓我們看看一個Attribute在C# WinForm控制項開發中的使用的執行個體。    Attribute在C# WinForm控制項開發中的使用的執行個體   

Head First C# 中文版 第12章 回顧與前瞻 page534

 我們準備好了來寫World類了有了Hive,Bee和Flower類,我們可以開始寫World類了。World負責協調模擬器中的每一個方面:記錄所有的蜜蜂,告訴蜂巢是否有足夠的控制項來容納更多的蜜蜂,定位花朵,等等: World對象維持所有事物的運行World對象的最重要的任務之一就是在模擬器中的每一輪去調用每一朵花,每一隻蜜蜂還有蜂巢的Go()方法。換句話說,World維持了模擬器世界中的生命的運轉。

Head First C# 中文版 第12章 回顧與前瞻 page540

我們已經有了四個核心類,我們需要做一些工作來把它們聯絡起來。遵循下面的步驟來做。但是要知道:在完成之前你必須修改幾乎每一個類的某些地方。①修改Bee來接受Hive和World的引用。現在有了Hive和World類,Bee對象需要知道它們。更新你的代碼來讓Bee在其構造方法中接受Hive和World的引用並且儲存這些引用來在稍後使用。 ②更新Hive來讓它接受一個World的引用就像Bee需要知道Hive一樣,Hive也需要知道World。更新Hive來讓它在構造方法中接受一個World的引用。你

Head First C# 中文版 第13章 控制項和圖形 page601

Graphics可以解決我們的透明度問題你可能已經想出來了,DrawImage()方法是解決重疊問題的關鍵。我們來解決問題吧!①添加一個DrawBee()方法,它用來使用任何Graphics對象來繪製一隻蜜蜂。它使用DrawImage()方法的重載版本,它接受一個Rectangle來定義在何處繪製及其尺寸。②下面是表單的新的Click事件處理器。它把蜂巢的左上方繪製在表單之外,位置在(-Width,-Height)。並用DrawBee()方法繪製四隻蜜蜂。③...但是有一個問題當你把表單拖拽出螢

總頁數: 4314 1 .... 2466 2467 2468 2469 2470 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.