Time of Update: 2018-12-04
建立蜂窩模擬器當然,我們還沒有建立過如此複雜的東西,所以我們需要永幾章的篇幅來把所有東西組合起來。在此過程中,你會學到添加timer控制項,LINQ,還有很多圖形編程技巧。下面是你在本章中需要做的(接下來會有更多): ①建立一個Flower類,它會變老,長出花粉,並且最終會枯萎並死掉。 ②建立一個Bee類,它有幾個不同的狀態(在某個花朵上採集花粉,返回蜂巢),並且它會根據其狀態知道要做什麼。 ③建立一個Hive類,它包含有入口,出口,幼蜂培育地,還有把花粉轉化為蜂蜜的蜂蜜工廠。 ④建立一
Time of Update: 2018-12-04
我們來直接跳到代碼。首先,我們需要一個Flower類。Flower類需要一個由Point定義的位置,有年齡,還有壽命。隨著時間的流逝,鮮花會變老。然後,當年齡到達了壽命值的時候,花朵會死去。你的任務就是把這些實現出來。①寫出Flower類的架構代碼下面是Flower類的類圖。寫出基本的類架構,Location,Age,Alive,Nectar和NectarHarvested都是自動屬性。NectarHarvested是可寫的,其他四個都是唯讀。現在把方法留空;我們稍後會回來處理它們。 ②給類
Time of Update: 2018-12-04
我們已經有了四個核心類,我們需要做一些工作來把它們聯絡起來。遵循下面的步驟來做。但是要知道:在完成之前你必須修改幾乎每一個類的某些地方。①修改Bee來接受Hive和World的引用。現在有了Hive和World類,Bee對象需要知道它們。更新你的代碼來讓Bee在其構造方法中接受Hive和World的引用並且儲存這些引用來在稍後使用。②更新Hive來讓它接受一個World的引用就像Bee需要知道Hive一樣,Hive也需要知道World。更新Hive來讓它在構造方法中接受一個World的引用。你還
Time of Update: 2018-12-04
即使是不縮放,把映像繪製到表單上也需要時間。假設你已經把所有的圖片都縮放過了。要把那些蜜蜂,花朵和蜂巢繪製出來還是需要時間。我們現在是使用Graphics把映像繪製到表單上去。如果你的眼睛捕捉到一次渲染的尾部,你會認為它是一次閃動。由於需要繪製的圖形很多,所以很有可能會出現閃爍。這就是多數業餘電腦遊戲的毛病...人眼捕捉到渲染的尾部,把它當做一次閃爍。
Time of Update: 2018-12-04
學習的好處要到建立些什麼東西的時候才看得出來。在寫出可以工作的代碼之前,很難知道你是否真的掌握了C#的核心概念。這一章,我們要學一些零碎的東西:timer和用LINQ來處理集合(只列舉某些)。我們還要建立一個很複雜的應用的第一階段,並且確保你很好的掌握了前面幾章學過的知識。做好準備...我們要建立一些很酷的程式了。
Time of Update: 2018-12-04
雙緩衝是內建於表單和控制項中的你可以使用Bitmap來做雙緩衝,但是C#和.NET通過內建的支援使得這一點更簡單。只需要把DoubleBuffered屬性設定為true。回到Zoomer使用者控制項--把它的DoubleBuffered設定為true,它就會停止閃爍了。現在回到BeeControl也這樣處理。這樣不可以解決所有的圖形問題--但是會有所改善。徹底檢修蜂巢模擬器如下做:①從移除BeeControl使用者控制項開始在蜂巢和闐園中不再會有任何的控制項。沒有BeeControl,沒有Pi
Time of Update: 2018-12-04
使用Paint事件來讓你的圖形可以持續存在如果繪製到表單上的圖形會在表單被遮擋的時候消失的話,那可不好。很幸運,有一個簡單的方式來讓圖形持久存在:編寫一個Paint事件處理器。表單在每次需要重繪的時候都會觸發Paint事件--比如被拖動出螢幕範圍的時候。它的PaintEventArgs參數有一個Graphics屬性,用它繪製的東西可以“持久”。①添加一個Paint事件處理方法Paint事件在每一次你的映像被弄花的時候都會被觸發。所以在Paint事件處理方法內部編寫繪製的代碼可以使得繪製的圖形持久
Time of Update: 2018-12-04
在表單上繪製一張圖片我們來建立一個表單應用,當你點擊表單的時候,表單上會繪製出一張圖片。如下做:①從給表單添加Click事件處理方法開始事件處理方法從一個using語句開始。你使用GDI+的時候,會用到很多實現了IDisposable介面的對象。如果你不處理這些對象,它們會耗費你的電腦資源,直到你關閉程式為止。所以你需要很多using語句: ②注意在表單上繪製的順序我們需要天藍色的背景,所以首先繪製一個藍色矩形,後面的圖形都要繪製在其上。你需要用到表單的ClientRectangle屬性,它指
Time of Update: 2018-12-04
③為雙緩衝的動畫設定好蜂巢和闐園表單移除表單構造方法中設定背景映像的代碼。移除所有表單上的控制項並把表單的DoubleBuffered屬性設定為true。給兩個表單添加Paint事件處理方法。下面是蜂巢表單的Paint事件的處理方法--田園表單的差不多,只是它調用PaintField()方法而已: ④兩個表單都需要一個公有的renderer屬性:移除所有的對於渲染器的Reset()方法的調用,把所有的new Renderer()語句替換為對下面的CreateRenderer()方法的調用: ⑤
Time of Update: 2018-12-04
BeeControl也需要釋放本身包含的控制項Control類實現了IDisposable介面,所以你需要確保每個使用過的控制項都得以釋放掉。BeeControl內部含有一個Timer控制項,而它沒有得以釋放掉,這是個問題。不過很幸運,這個問題很容易修複--覆寫Dispose()方法即可。③覆寫Dispose()方法來釋放TimerBeeControl繼承自Control,所以它必然含有Dispose()方法。所以我們可以覆寫該方法來釋放Timer。進入代碼鍵入override: 在智能感應視
Time of Update: 2018-12-04
需要改進圖形效能的方法就是給渲染器添加一個方法來縮放圖片。然後我們就可以在每張圖片載入之後縮放它,而且只在BeeControl中和蜂巢表單中使用縮放過之後的版本。如下做:①給渲染器添加一個ResizeImage方法所有儲存在項目中的圖片都是以Bitmap對象的形式存在的。下面是一個縮放圖片的靜態方法--把它添加到Renderer類中: ②給BeeControl添加這個ResizeCells方法你的BeeControl可以儲存自己的Bitmap對象--在一個數組中。下面可以產生這個數組,把每一個
Time of Update: 2018-12-04
使用System.Drawing來自己處理圖形Graphics屬於System.Drawing命名空間。.NET架構中有很多比工具箱中的PictureBox更強大的工具。你可以繪製圖形,使用字型,進行複雜的圖形計算...這些都從Graphics對象開始。你想要添加或者修改任何東西的圖形或者映像的時候,你都需要建立一個與該對象相關的Graphics對象,然後使用Graphics對象的方法來在目標上繪製。①從一個你想要繪製的對象開始以一個表單為例。調用表單的CreateGraphics()方法將會
Time of Update: 2018-12-04
在開始構建程式之前瞭解使用者的需求在開始寫這個通訊錄的程式--或者是任何的程式--之前我們要花點時間去想想誰會去用這個程式,他們需要這個程式做什嗎?1.CEO需要在工作的時候用這個通訊錄程式,在他的膝上型電腦上也需要用。他需要一個安裝包來確保把所有的檔案都正確的安裝到這兩台電腦上。 2.Objectville Paper公司的銷售團隊也想要用CEO的通訊錄。他們需要CEO的資料來建立一個郵件清單,來獲得使用者、獲得更多的銷售額。CEO感覺到使用資料庫是讓全公司的人都可以看到他的資料的最佳途徑,然
Time of Update: 2018-12-04
探討C#中的實體驗證(Entity Validation)環境:Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0一. 可能是最原始的驗證代碼為了讓問題盡量簡單,我們就拿一個簡單得不能再簡單的User類開刀吧。現在我們要在User類裡面加一個方法用於驗證User執行個體的合法性,相信很多人寫過如下類似的代碼:Check()方法很單純的為User類的屬性應用各種規則,然後返回非法的提示資訊集。驗證的時候只是簡單的調用一下實體的Check()方法即可:好吧,我承認,
Time of Update: 2018-12-04
簡單工廠的最最簡單應用 using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Calculate cal = factory.CreateOper ("-");
Time of Update: 2018-12-04
C#語言自C/C++演變而來。它是現代、簡單、完全物件導向和型別安全的。C#語言是微軟公司針對.Net平台才推出來的一門新語言,作為.Net平台的第一語言,它幾乎集中了所有關於軟體開發和軟體工程研究的最新成果。物件導向、型別安全、組件技術、自動記憶體管理、跨平台異常處理、版本控制、代碼安全管理…… 在.NET應用程式開發中,不管是WEB Forms(ASP.NET)還是Windows Forms,都涉及到大量對象的事件響應及處理,比如客戶線上提交一份訂單、或是在Windows視窗上移動滑鼠等
Time of Update: 2018-12-04
C# 學習資源下載C#開發編碼規範.docC#進階編程(第二版).pdfC#進階編程(第三版)英文版.pdfC#設計模式.pdfC#進階編程技術.pdfC#文檔中文版(微軟).pdfC#教程.pdf一個小的建議:《C#進階編程(第四版)(Professional C#
Time of Update: 2018-12-04
C#語言參考目錄1. 介紹 11.1 Hello, world 11.2 類型 21.2.1 預定義類型 31.2.2 轉換 51.2.3 數群組類型 61.2.4 類型系統一致 71.3 變數和參數 81.4 自動記憶體管理 111.5 運算式 131.6 聲明 141.7 類 171.7.1 常數 191.7.2 域 191.7.3 方法 201.7.4 屬性 211.7.5 事件 221.
Time of Update: 2018-12-04
題外話:CSDN Blog裡面貼的圖片寬度稍微大一點就顯示不全.... 第一章:C#令你高效率:十分鐘之內建立可視化應用程式想要快速構建很棒的程式?有了C#,就相當於手頭有了一門強大的程式設計語言和一個有價值的工具。有了Visual Studio IDE,你讓一個按鈕工作再也不用花費好幾個小時來寫晦澀的代碼了。更好的是,你可以把精力集中在你的工作上,而不用記住哪個方法參數是給按鈕用的,哪個又是給標籤(label)用的了。聽起來很吸引人吧?翻到下一頁,我們開始編程吧。
Time of Update: 2018-12-04
C#強化系列文章八:HttpModule,HttpHandler,HttpHandlerFactory簡單使用收藏這三個對象我們在開發Asp.net程式時經常會用到,似乎很熟悉,但有時候又不太確定。本文通過一個簡單的例子來直觀的比較一下這三個對象的使用。HttpModule:Http模組,可以在頁面處理前後、應用程式初始化、出錯等時候加入自己的事件處理常式HttpHandler:Http處理常式,處理頁面請求HttpHandlerFactory:用來建立Http處理常式,建立的同時可以附加自