程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 輕松進修C#的構造和類

輕松進修C#的構造和類

編輯:C#入門知識

輕松進修C#的構造和類。本站提示廣大學習愛好者:(輕松進修C#的構造和類)文章只能為提供參考,不一定能成為您想要的結果。以下是輕松進修C#的構造和類正文


       類和構造是.NET Framework中的異樣類型體系的兩種根本結構。二者在實質上都屬於數據構造,封裝這一組全體作為一個邏輯單元的數據和行動。數據和行動是該類或構造的“成員”,它們包括著各自的辦法,屬性和事宜等。
       構造
       構造是C#法式員用來界說本身的值類型的最廣泛的機制。構造比列舉更壯大,由於它供給辦法,字段,操作符和拜訪掌握等。
       構造與類很類似,都表現可以包括數據成員和函數成員的數據構造。然則,與類分歧,構造是一種值類型,而且不須要堆分派。構造類型的變量直接包括了該構造的數據,而類類型的變量所包括的只是對響應數據的一個援用(被援用的數據稱為“對象”)。
        構造關於具有值語義的小型數據構造尤其有效。單數,坐標系中的點或字典中的“鍵-值”對都是構造的典范示例。這些數據構造的症結的地方在於:他們只是大批數據成員,不請求應用繼續或援用標識,並且它們應用較便利(賦值時直接復制值而不是復制它的援用)。
        構造的聲明經由過程症結字struct來完成,聲明格局為:
        潤飾符   struct   構造名
         {
                 構造主體
          };
         構造聲明包括一組可選額特征,後跟一組可選的構造潤飾符,再跟症結字struct和一個用於定名構造的標識符,然後跟一個可選的構造接口標准,最初跟一個構造主體,依據須要前面還可以跟一個分號。
        構造聲明可以依據須要包括一個構造潤飾符:new,public,protected,internal,private
        構造的應用
        為構造界說默許(無參數)結構函數是毛病的,在構造體重初始化實例字段也是毛病的。初始化構造成員可經由過程兩種情勢來完成:一是應用參數化結構函數,二是在聲明構造後分離拜訪成員。關於任何公有成員或以其他方法設置為弗成拜訪的成員,只能在結構函數中停止初始化。
        假如應用new運算符創立構造對象,則會創立該構造對象,並挪用恰當的結構函數。與類分歧的是,構造的實例化可以不應用new運算符。在此情形下不存在結構函數的挪用,因此可以進步分派效力。然則,在初始化一切字段之前,字段將堅持未賦值狀況且對象弗成用。
        當構造包括援用類型作為成員時,必需顯式挪用挪用該成員的默許結構函數,不然該成員將堅持未賦值狀況且該構造弗成用。
例題,創立一個構造,剖析構造的應用

<span >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 > class A 
 { 
 } 
 class B 
 { 
  void M() 
  { 
   A a = new A(); 
  } 
 }</span> 
   

類的繼續聲明:C#說話中只支撐單繼續

<span > 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#的構造和類的全體常識點,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved