亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

輕松學習C#的結構和類

2020-01-24 01:21:52
字體:
來源:轉載
供稿:網友

       類和結構是.NET Framework中的同樣類型系統的兩種基本構造。兩者在本質上都屬于數據結構,封裝這一組整體作為一個邏輯單位的數據和行為。數據和行為是該類或結構的“成員”,它們包含著各自的方法,屬性和事件等。
       結構
       結構是C#程序員用來定義自己的值類型的最普遍的機制。結構比枚舉更強大,因為它提供方法,字段,操作符和訪問控制等。
       結構與類很相似,都表示可以包含數據成員和函數成員的數據結構。但是,與類不同,結構是一種值類型,并且不需要堆分配。結構類型的變量直接包含了該結構的數據,而類類型的變量所包含的只是對相應數據的一個引用(被引用的數據稱為“對象”)。
        結構對于具有值語義的小型數據結構尤為有用。復數,坐標系中的點或字典中的“鍵-值”對都是結構的典型示例。這些數據結構的關鍵之處在于:他們只是少量數據成員,不要求使用繼承或引用標識,而且它們使用較方便(賦值時直接復制值而不是復制它的引用)。
        結構的聲明通過關鍵字struct來實現,聲明格式為:
        修飾符   struct   結構名
         {
                 結構主體
          };
         結構聲明包含一組可選額特性,后跟一組可選的結構修飾符,再跟關鍵字struct和一個用于命名結構的標識符,然后跟一個可選的結構接口規范,最后跟一個結構主體,根據需要后面還可以跟一個分號。
        結構聲明可以根據需要包含一個結構修飾符:new,public,protected,internal,private
        結構的使用
        為結構定義默認(無參數)構造函數是錯誤的,在結構體重初始化實例字段也是錯誤的。初始化結構成員可通過兩種形式來完成:一是使用參數化構造函數,二是在聲明結構后分別訪問成員。對于任何私有成員或以其他方式設置為不可訪問的成員,只能在構造函數中進行初始化。
        如果使用new運算符創建結構對象,則會創建該結構對象,并調用適當的構造函數。與類不同的是,結構的實例化可以不使用new運算符。在此情況下不存在構造函數的調用,因而可以提高分配效率。但是,在初始化所有字段之前,字段將保持未賦值狀態且對象不可用。
        當結構包含引用類型作為成員時,必須顯式調用調用該成員的默認構造函數,否則該成員將保持未賦值狀態且該結構不可用。
例題,創建一個結構,分析結構的使用

<span style="font-size:18px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace Text {  struct Sum//定義的一個結構  {   public int sum(int a, int b)//結構包含的方法   {    return a + b;   }  }  class Program  {   static void Main(string[] args)   {    int p = 10;    int q = 10;    Sum t = new Sum();//創建結構對象t    Console.Write("{0}+{1}=",p,q);    Console.Write(t.sum(p,q));//調用結構中的方法    Console.ReadLine();   }  } } </span> 

輸出的結果為:10+10=20
        
        類是一種數據結構,它可以封裝數據成員(常量和字段),函數成員(方法,屬性,事件,索引器,運算符,實例構造函數,靜態構造函數和析構函數)和其他的類(嵌套類型)。類是創建對象的模板。C#的一切類型都是類,所有的語句都必須位于類內,不存在任何處于類外的語句。因此,類是C#語言的核心和基本構成模塊。類類型支持繼承,繼承是一種機制,可使派生類對基類進行擴展和專用化。
        類聲明中指定的基類可以是構造類類型?;惐旧聿荒苁穷愋托螀ⅲ谄渥饔糜蛑锌梢园愋托螀?。
        在OOP方法中,類是對現實世界的一種高度抽象與概括,而對象則是類的一個實例,對象一定具有其屬類的共同特征與行為規則,當然一個對象還可以具有其屬類未曾規定的特征和行為規則。這一點和現實生活是相同的,這樣的模擬和抽象比較符合人們的思維習慣,這也正是OOP方法具有強大生命力,能夠獲得越來越多的軟件工作者歡迎并得到眾多計算機開發商支持的一個基本原因。
       總之,從程序設計者的角度觀察,類是一個數據模式和若干個程序過程,經封裝而形成的一個整體,是使用信息技術對現實世界的一種模擬與抽象。而對象則是類的一個實例,從程序設計語言來說,對象可以被理解為一個類賦值的結果。對象是OOP方法中組成程序的一種構件。
       C#中類的聲明是通過class關鍵字實例的,格式為:
       修飾符   class 類名: 基類或接口
        {
             類體
        }
        其中“修飾符”,": 基類或接口"為可選項。類的修飾符可以是以下幾種之一或者它們的組合(在類的聲明()中同一修飾符不允許出現多次)。
       (1)new:僅允許在嵌套類聲明時使用,表明類中隱藏了由基類中繼承而來的,與基類中同名的成員
       (2)public:表示不限制對該類的訪問
       (3)internal:只有其所在類才能訪問
       (4)private:只有對.NET中的應用程序或庫才能訪問
       (5)abstract:抽象類,不允許建立類的實例
       (6)sealed:密封類,不允許被繼承
使用new關鍵字可以建立類的一個實例:

<span style="font-size:18px;"> class A  {  }  class B  {   void M()   {    A a = new A();   }  }</span>    

類的繼承聲明:C#語言中只支持單繼承

<span style="font-size:18px;"> class A  {  }  class B : A  {  }</span>

(1)、構造函數和析構函數
         C#提供了更好的機制來增強程序的安全性。C#編譯器具有嚴格的類型安全檢查功能,它幾乎能找出程序中所有的語法問題。但是,程序通過了編譯檢查并不表示錯誤已經不存在了。
        C#語言充分考慮了程序錯誤的出現并很好的予以解決,即把對象的初始化工作放在構造函數中,把清除工作放在析構函數中。當對象被創建時,構造函數被自動執行。當對象消亡時,析構函數自動執行。
        構造函數的名字不能隨便起,必須讓編譯器認得出才可以被自動執行。它的命名方法既簡單又合理:讓構造函數與類名相同。除了名字之外,構造函數的另一個特別之處是沒有返回值類型,這是與返回值類型為void的函數不同。
        析構函數是實現銷毀一個類的實例的方法成員。析構函數不能有參數,不能有任何修飾符而且不能被調用。析構函數與構造函數目的不同,特在析構函數前加前綴”~“以示區別。
        構造函數和析構函數雖然是一個類中形式上較簡單的函數。但它們的使用決非看上去那么簡單,因此靈活而正確地使用構造函數和析構函數能夠幫助用戶更好的理解CLR的內存管理機制以及更好的管理系統中的資源。
(2)、類與對象
       
類是具有相同屬性和服務的一組對象的集合。它為屬于該類的所有對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它有一個類名,類名包括屬性說明和服務說明兩個主要部分。
       對象時系統中用來描述客觀事物的一個實體,是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。從更抽象的角度來說,對象是問題域或實現域中某些事物的一個抽象,反映了該事物在系統中需要保存的信息和發揮的作用,是一組屬性和有權對這些屬性進行操作的一組服務的封裝體??陀^世界是由對象和對象之間的聯系組成的。
       類和對象的關系就如模具和鑄件的關系,類的實例化的結果就是對象。而對一類對象的抽象就是類。類描述了一組有相同特性(屬性)和相同行為(方法)的對象。
例題,創建類A并且在另一個類中調用類A的方法Sum

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace Text {  class A//創建的類  {   public int Sum(int i, int j)//被類封裝的方法   {    return i + j;   }  }  class Program  {   static void Main(string[] args)   {    A a = new A();//創建的類A的對象a    int p = 10;    int q = 10;    Console.WriteLine(a.Sum(p,q));//調用類A的Sum方法    Console.ReadLine();   }  }   } 

輸出的結果為:20

以上就是關于C#的結構和類的全部知識點,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产美女直播视频一区| 久久精品这里热有精品| 欧美成人h版在线观看| 亚洲国产成人在线播放| 精品亚洲永久免费精品| 日韩欧美在线免费| 久久香蕉国产线看观看网| 久久在线免费视频| 92福利视频午夜1000合集在线观看| 韩国欧美亚洲国产| 在线观看精品自拍私拍| 久久精品久久精品亚洲人| 国产精品久久久久久中文字| 久久精品视频在线| 欧美亚洲日本网站| 国产欧美日韩视频| 欧美在线免费视频| 欧美精品中文字幕一区| 国产网站欧美日韩免费精品在线观看| 国产精品国产亚洲伊人久久| 中文字幕在线观看亚洲| 精品久久久久久久久久| 欧美老少做受xxxx高潮| 欧美精品一区二区免费| 少妇高潮 亚洲精品| 色老头一区二区三区在线观看| 日韩精品在线免费播放| 国产精品免费一区| 亚洲第一区第一页| 亚洲美女视频网| 国产91色在线免费| 亚洲精品自拍视频| 国产精品国产自产拍高清av水多| 黄色一区二区三区| 成人免费黄色网| 日本成人精品在线| www国产精品视频| 欧美日韩精品在线观看| 日韩av三级在线观看| 伊人av综合网| 亚洲国产成人久久| 国产精品18久久久久久首页狼| 伊人久久免费视频| 亚洲欧美精品伊人久久| 成人欧美一区二区三区黑人孕妇| 国产91色在线|免| 亚洲毛片在线观看.| 国产成人av网址| 色哟哟入口国产精品| 大桥未久av一区二区三区| 国产欧美精品久久久| 色偷偷9999www| 久久精品久久久久电影| 久久av资源网站| 日韩中文在线视频| 欧美日韩人人澡狠狠躁视频| 国产精品劲爆视频| 亚洲伊人一本大道中文字幕| 日韩在线中文字幕| 成人在线免费观看视视频| 亚洲欧洲在线免费| 国产精品第一视频| 欧美在线www| 国产成人免费av| 欧美日本高清视频| 欧洲美女7788成人免费视频| 亚洲第一二三四五区| 97在线观看视频国产| 欧美亚洲午夜视频在线观看| 这里只有精品视频在线| 亚洲成人av在线| 久久九九精品99国产精品| 亚洲成人精品久久| 欧美日韩精品在线播放| 久久久久久国产精品三级玉女聊斋| 亚洲欧美在线磁力| 久久韩剧网电视剧| 成人激情视频在线观看| 亚洲国产精品va在线看黑人动漫| 国产成人久久久精品一区| 日本成人在线视频网址| 国产v综合v亚洲欧美久久| 国产精品老女人精品视频| 欧美午夜丰满在线18影院| 日韩在线视频播放| 亚洲电影免费观看高清| 亚洲成色777777女色窝| 欧美激情精品久久久久久大尺度| 精品久久久久久久大神国产| 国内精品中文字幕| 欧美激情久久久久| 亚洲аv电影天堂网| 亚洲激情视频在线| 欧美性xxxxx极品娇小| 久久久在线免费观看| 亚洲系列中文字幕| 久久精品91久久香蕉加勒比| 成人黄色在线播放| 51色欧美片视频在线观看| 国产精品99免视看9| 亚洲精品91美女久久久久久久| 日韩av网址在线观看| 国产精品视频久久久| 久久亚洲精品中文字幕冲田杏梨| 日韩精品极品视频免费观看| 高清亚洲成在人网站天堂| 2019亚洲日韩新视频| 4438全国成人免费| 91av国产在线| 欧美刺激性大交免费视频| 久久精品国产亚洲精品2020| 日韩欧美中文字幕在线播放| 亚洲精品久久7777777| 国产视频丨精品|在线观看| 久久久黄色av| 欧美xxxx18国产| 亚洲美女av电影| 色阁综合伊人av| 国产成人极品视频| 色妞在线综合亚洲欧美| 日本韩国欧美精品大片卡二| 久久影视电视剧凤归四时歌| 日韩av最新在线| 成人自拍性视频| 亚洲a级在线播放观看| 国产在线拍揄自揄视频不卡99| 97久久精品人人澡人人爽缅北| 91亚洲国产成人精品性色| 成人欧美一区二区三区黑人孕妇| 亚洲亚裔videos黑人hd| 日韩在线观看精品| 中文字幕av一区二区三区谷原希美| 精品亚洲精品福利线在观看| 精品香蕉在线观看视频一| 日韩欧美有码在线| 亚洲国产又黄又爽女人高潮的| 国产一区二区在线免费视频| 成人在线免费观看视视频| 精品中文字幕在线2019| 亚洲三级av在线| 在线观看不卡av| 国产午夜精品全部视频在线播放| 久久久久久午夜| 欧美在线一区二区三区四| 久久国产精品亚洲| 日韩欧美在线中文字幕| 欧美国产日韩中文字幕在线| 久久久成人的性感天堂| 久久久人成影片一区二区三区| 久久成年人免费电影| 97精品国产97久久久久久春色| 在线观看国产精品淫| 国产日韩欧美日韩大片| 日韩国产欧美精品在线| 国产精品高潮呻吟久久av黑人| 国产精品久久久久av免费| 亚洲精品色婷婷福利天堂| 日韩国产在线看| 97色在线观看免费视频| 亚洲午夜精品久久久久久性色| 国产一区二区三区日韩欧美| 亚洲成人动漫在线播放| 国产精品国产自产拍高清av水多| 91成品人片a无限观看|