C#編程利器之五:集合對象(Collections)

記得教科書上有這樣一句話:"如果需要使用同一類型的多個對象,就可以使用集合和數組。" ,是的, 沒有錯.只是數組的大小是固定的。如果元素個數是動態,就應使用集合類。在.NET Framework裡,集 合有很多,如List<T>和ArrayList是與數組相當的集合類。還有其他類型的集合:隊列、棧、鏈表 和字典。本文不會對這些集合對象作詳細的介紹,只是把常用的集合對象拿出來討論一下。一、數組在實際應用中,數組又可分為:簡單數組、多維陣列、鋸齒數組、Array數組.

C#編程利器之四:委託與事件(Delegate and event) (下)

二、事件1.瞭解概念事件就是當對象或類狀態發生改變時,對象或類發出的資訊或通知。發出資訊的對象或類稱為"事件來源 ",對事件進行處理的方法稱為"接收者",通常事件來源在發出狀態改變資訊時,它並不知道由哪個事件接收者 來處理.這就需要一種管理機制來協調事件來源和接收者,C++中通過函數指標來完成的.在C#中事件使用委託

C#編程利器之四:委託與事件(Delegate and event) (上)

本文試圖在.net Framework環境下,使用C#語言來描述委託、事件的概貌。希望本文能有助於大家理 解委託、事件的概念,理解委託、事件的用途,理解它的C#實現方法,理解委託與事件為我們帶來的好處 。C#是一種新的語言,希望大家能通過本文清楚地看到這些,從而可以對委託、事件等技術進行更深入的 理解和探索。一. 委託委託的本質--在C#中,委託是一個特殊的類;--在某種程度上,相當於C++的函數指標;--在某種程度上,相當於介面(Interface);委託的定義--關鍵字:delegate--

C#編程利器之三:介面(Interface)

C#介面是一個讓很多初學者容易迷糊的東西,用起來好象很簡單,定義介面,然後在裡面定義方法, 通過繼承與他的子類來完成具體的實現。但沒有真正認識介面的作用的時候就覺得用介面是多此一舉,當 然你這樣想是絕對錯誤的。在軟體設計中有一個非常重要的原則就是:面向介面編程,依賴與介面或抽象 層。可見介面在真正的開發中是多麼的重要。在之前C#編程利器之一:類(Class)一文裡介紹了類的相關知識,本文主要介紹OO編程中的另一個重要 知識點--介面。在某種程度上說,介面也是類,一種特殊的類或抽象類別。

C#編程利器之二:結構與枚舉(Structure and enumeration)

在上一篇文章中,介紹了類如何封裝程式中的對象.而實際中,出了類可以封裝對象外,結構和枚舉也可 以封裝一些對象,本文將著重介紹結構和枚舉這兩個知識點的相關應用.一. 結構(Structure)什麼是結構(Structure)?在C#裡,Struct是一種實值型別,通常用來封裝小型相關變數組,和類有很大的相 似度.同類一樣,它不但可以包含不同資料類型資料。還可以包含複合類型(數組,結構,DateTime等等) 除了以名字/值方式出現還可以有屬性和方法,所以說結構是一種強大的複合型資料。1.

C#編程利器之一:類(Class)

物件導向的程式設計(Object-Oriented Programming,簡記為OOP)是一種功能非常強大的編程方法, 立意於建立軟體重用代碼,以類為基礎去思考編程問題。類是OOP中的核心組成元素,通常都是使用類來 “封裝”對象(屬性、行為)。在經典圖書《代碼大全》裡定義:“建立高品質的類,第一步,可能也是 最重要的一步,就是建立一個好的介面。這也包括了建立一個可以通過介面來展現的合理的抽象,並確保

C#對遊戲手柄的編程開發-API篇(3)

對遊戲手柄的編程開發在上兩篇中,已講解完,在此篇中將講解對鍵盤的類比。對鍵盤的類比,系統已提供了非常多的API函數,在這裡就不一一講解了,只講解其中一個最簡單的 API函數 。/// <summary>       /// 類比鍵盤事件       /// </summary>       /// <param name="bVk">虛擬索引值</param>      

C#對遊戲手柄的編程開發-API篇(1)

前段時間花38元從網上買了一對北通的USB遊戲手柄,這樣周末與晚上的休閑時間就可以玩玩孩兒時的 SFC與街機類比遊戲了。某日在某個網站上玩一個Flash遊戲時,突然想到,如果也能使用手柄來玩Flash遊戲,那該多爽 。 但可惜的是,目前的Flash都是不支援對遊戲手柄進行編程,這不免是Flash中的一個遺憾。。雖然Flash中不支援對遊戲手柄進行編程,但我們可以換種方法,做一個輔助程式(外掛? ) ,將手柄中的操作事件轉換為Flash中可接受的鍵盤與滑鼠操作事件,這樣不就可以使用遊戲手柄來玩

資料結構(C#):迴圈鏈表

迴圈鏈表可以是單鏈表,也可以是雙鏈表。鏈表的尾節點的後繼節點指向頭結點便成了迴圈鏈表。我們在這裡繼承雙鏈表實現迴圈鏈表,當到達雙鏈表的表尾時,讓遊標指向第0個節點;當到達雙鏈表 的開頭時,讓遊標指向結尾節點,這樣就實現了迴圈雙鏈表。結尾用一個經典的約瑟夫問題來作迴圈鏈表 的應用樣本。1.迴圈鏈表代碼:/** File   :  CircularlyLinkedList.cs* Author  :  Zhenxing Zhou* Date   :  2008-12-07* Blog   : 

資料結構(C#):順序表

線性表是有限個資料元素的序列。線性表的儲存有順序儲存和鏈式儲存兩種。為使線性表支援相同的API,定義了以下介面,分別用順表和鏈表實現。/** File   :  ILinerList.cs* Author  :  Zhenxing Zhou* Date   :  2008-12-06* Blog   :  http://www.xianfen.net/*/using System.Collections.Generic;namespace Xianfen.Net.DataStructure{  

資料結構(C#):雙鏈表

雙鏈表每個資料節點都有兩個指標,分別指向其後繼和前驅節點。與單鏈表只能訪問其後繼結點相比 ,具有更大的靈活性;當然佔用更多的儲存空間。前面的單鏈表和這裡的雙鏈表都使用了空的頭結點或稱啞節點,目的是實現有序鏈表時更方便。直接看代碼:/** File   :  DoubleLinkedList.cs* Author  :  Zhenxing Zhou* Date   :  2008-12-06, 2008-12-07* Blog   : 

資料結構(C#):隊列

隊列的特點是先進先出,如同日常生活中的排隊。隊列有加入隊尾,從隊頭刪除元素,取得隊尾元素 ,取得隊頭元素,取得隊列長度,判斷隊列是否為空白等操作。隊列也可以可以用順序表、鏈表實現,但隊列最好不要用順序表實現,因為元素排入佇列和刪除元素 中的一種操作總會引起全部元素的移動,效率極低(迴圈隊列除外)。隊列的實現非常簡單,下面用前面介紹的單鏈表實現。代碼:/** File   :  Queue.cs* Author  :  Zhenxing Zhou* Date   :  2008-12-07*

資料結構(C#):堆棧

堆棧是一種後進先出的資料結構,在某些程式設計中經常用到。堆棧只能取得棧頂元素、壓棧、出棧 、取得棧內元素數量及判斷是否為空白等操作。堆棧可以用順序表、鏈表實現,有了前面順序表及鏈表,堆棧實現非常簡單,這裡用單鏈表實現。1.實現代碼/** File   :  Stack.cs* Author  :  Zhenxing Zhou* Date   :  2008-12-07* Blog   :  http://www.xianfen.net/*/namespace

資料結構(C#):單鏈表

與順序表相比,鏈表有自己的特點:插入、刪除操作無需移動元素;能夠高效實現動態記憶體分配;但 不能按節點索引快速定位到節點;由於需要記錄指標域,系統開銷較大。本篇介紹單鏈表的實現,使用上一篇定義的介面。代碼:/** File   :  SingleLinkedList.cs* Author  :  Zhenxing Zhou* Date   :  2008-12-06* Blog   :  http://www.xianfen.net/*/using System;using

C#基礎+進階系列

C#進階(九)C#資料結構,集合C#進階(八)委託C#進階(七)類型強制轉換,拆箱,裝箱C#進階(六)介面,介面繼承C#進階(五)繼承,衍生類別,衍生類別的構造方法C#進階(四)結構,部分類和Object類C#進階(三)建構函式C#進階(二)類C#進階(一)物件導向C#基礎(六)(枚舉,數組,命名空間)C#基礎(五)(C#條件,迴圈和判斷)C#基礎(四)(C#預定義實值型別和參考型別)C#基礎(三)(變數的聲明,變數的範圍以及常量)C#基礎(二)(溫故而知新)C#基礎(一)(溫故而知新)

C#進階(九)C#資料結構,集合

一、集合的基本概念在.NET中,對於資料結構的支援,即把許多類似的對象組合起來。最簡單的資料結構就是數組。集合表示一組可以通過遍曆每個元素來訪問的的一組對象,特別是可以使用foreach迴圈來訪問他們。 對象如果可以提供相關對象的引用,就是一個集合。稱為使用foreach迴圈是集合的主要目的,集合沒有提供其他特性。二、數組列表。數組列表類似數組,但數組列表是可以增大的。數組在規定的大小後,就不可以再增加了,但數組列 表可以。比如 ArrayList arrayListTest=new

C#進階(八)委託

一、委託當我們需要把方法做為參數傳遞給其他方法的時候,就需要使用委託。因為有時候,我們要操作的對象,不是針對資料進行的,而是針對某個方法進行的操作。我們還是來以代碼入手using System;namespace gosoa.com.cn{   public class test   {     public delegate string GetAString();     public static void Main()     {       int x=10;      

C#進階(七)類型強制轉換,拆箱,裝箱

一、裝箱和拆箱裝箱就是 將實值型別轉換為參考型別。拆箱就是 將參考型別轉換為實值型別。比如我們非常常用的 .ToString() 方法,就是典型的一個裝箱的過程。再如下面的例子int i=10;object y=(object) i ; //這就是裝箱int x=(int)y; //這是拆箱。二、對象的相等比較在C#中,有四種比較相等的方法。1、ReferenceEquals() 該方法是一個靜態方法,用來判斷兩個引用是否指向同一個執行個體。也就是是否

C#進階(六)介面,介面繼承

介面我們在前面也已經有所提及。介面的命名傳統上都以大寫I 開頭。我們假設這樣一種情況,一個系統有很多使用者,我們可以查詢某個使用者是否存在,並且可以修改使用者 的密碼。但有可能某天我們的資料庫從mysql 升級成為 sqlserver 。在這種情況下,我們看下面一個例 子。using System;namespace gosoa.com.cn{ public interface IUserOperation { bool userExites(string

C#的裝箱和拆箱

到目前為止,我們為大家講解了有關C#語言中的實值型別和參考型別資料。這一節我們來瞭解一下C#語言類型系統提出的一個核心概念:裝箱(boxing)和拆箱(unboxing)。裝箱和拆箱機制使得在C#類型系統中,任何實值型別、參考型別和object(對象)類型之間進行轉換,我們稱這種轉化為綁定串連。簡單地說,有了裝箱和拆箱的概念,對任何類型的值來說最終我們都可以看作是object類型。4.3.1 裝箱轉換4.3.2 拆箱轉換

總頁數: 4314 1 .... 2930 2931 2932 2933 2934 .... 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.