91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#結構的學習

發布時間:2020-10-02 21:16:00 來源:網絡 閱讀:571 作者:yisuowushinian 欄目:編程語言

結構是程序員定義的數據類型,非常的類似于類。有數據成員和函數成員。

但是也有區別:

1)類是引用類型,而結構是值類型;

2)結構是隱式密封的,不能被派生;

語法聲明與類相似:

 

  1. //結構的聲明 
  2.         struct StructName 
  3.         { 
  4.             //包含的成員變量 
  5.         } 

看下邊的示例代碼來演示C#結構的使用方法:

 

  1. static void Main(string[] args) 
  2.         { 
  3.             Point first, second, third; 
  4.             first.x = 10; first.y = 10; 
  5.             second.x = 20; second.y = 20; 
  6.             third.x = first.x + second.x; 
  7.             third.y = first.y + second.y; 
  8.  
  9.             Console.WriteLine("first:{0},{1}",first.x,first.y); 
  10.             Console.WriteLine("second:{0},{1}",second.x,second.y); 
  11.             Console.WriteLine("third:{0},{1}",third.x,third.y); 
  12.             Console.ReadKey(); 
  13.         } 
  14.  
  15.         struct Point 
  16.         { 
  17.             public int x; 
  18.             public int y; 
  19.         } 

結構是值類型

 

1)結構類型的變量不能使null;

2)兩個結構變量不能引用同一對象

 

  1. static void Main(string[] args) 
  2.         { 
  3.             CSimple cs1 = new CSimple(),cs2=null
  4.             Simple ss1 = new Simple(),ss2=new Simple(); 
  5.  
  6.             cs1.x = ss1.x = 5; 
  7.             cs1.y = ss1.y = 10; 
  8.             cs2 = cs1;   //賦值類實例 
  9.             ss2 = ss1;   //賦值結構實例 
  10.  
  11.         } 
  12.  
  13.         class CSimple 
  14.         { 
  15.             public int x; 
  16.             public int y; 
  17.         } 
  18.  
  19.         struct Simple 
  20.         { 
  21.             public int x; 
  22.             public int y; 
  23.         } 

 

先創建一個CSimple類,和一個Simple結構

 

在Main()分別對它們實例化聲明兩個個變量后,cs1和cs2分別指向在堆中的引用,而ss1和ss2分別在棧中分配空間并存儲。
把一個結構賦值給另外一個結構,就是從一個結構中把值復值給另外一個結構。與類不同的是,復制類變量時只有引用被復制。

如上面的代碼,類賦值結束后,cs2和cs1指向堆中的同一個對象。但是在結構賦值結束后,ss2成員的值和ss1成員的值相同。

 

結構中的構造函數和析構函數

語言隱式的為每個結構提供一個無參數的構造函數。這個構造函數把結構的每個成員設置為該類型的默認值,引用成員被設置成null

預定義的無參數構造函數對每個結構都存在,而且不能刪除或者重新定義。但是可以創建另外的構造函數,只要他們有參數。這和類不同,對于類,編譯器只在沒有其它構造函數聲明時提供隱式的無參數構造函數。

要調用一個構造函數,包括隱式的無參數構造函數,要使用new運算符。即使不從堆中分配內存也使用new運算符。

如下面的實例:

 

  1. static void Main(string[] args) 
  2.         { 
  3.  
  4.             Simple s1 = new Simple();  //調用隱式的構造函數 
  5.             Simple s2 = new Simple(5, 10);  //調用構造函數 
  6.             Console.WriteLine("{0},{1}",s1.x,s1.y); 
  7.             Console.WriteLine("{0},{1}", s2.x, s2.y); 
  8.              
  9.             Console.ReadKey(); 
  10.         } 
  11.  
  12.         struct Simple 
  13.         { 
  14.             public int x; 
  15.             public int y; 
  16.  
  17.             public Simple(int a, int b) 
  18.             { 
  19.                 x = a; 
  20.                 y = b; 
  21.             } 
  22.         } 

 

也可以不適用new運算符創建結構的實例。但是,有一些限制:

 

1)不能使用數據成員的值,直到顯示的設置它

2)不能調用任何函數成員,直到所有數據成員已經被賦值

 

  1. static void Main(string[] args) 
  2.         { 
  3.  
  4.             Simple s1, s2; 
  5.             Console.WriteLine("{0},{1}", s1.x, s1.y);//編譯錯誤,s1.x, s1.y還沒有被賦值 
  6.  
  7.             s2.x = 50; 
  8.             s2.y = 10; 
  9.             Console.WriteLine("{0},{1}", s2.x, s2.y); 
  10.  
  11.        
  12.             Console.ReadKey(); 
  13.         } 
  14.  
  15.         struct Simple 
  16.         { 
  17.             public int x; 
  18.             public int y; 
  19.         } 

 

 

 


原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。

C#結構的學習
 

 

向AI問一下細節
推薦閱讀:
  1. C#基礎學習
  2. c#學習體系

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民丰县| 张家港市| 会宁县| 绥中县| 宁海县| 客服| 穆棱市| 长治县| 阿坝县| 郓城县| 栾城县| 利川市| 台北市| 喀喇沁旗| 文昌市| 河间市| 蕲春县| 平武县| 普兰县| 墨江| 阿鲁科尔沁旗| 个旧市| 库车县| 天镇县| 兰坪| 英吉沙县| 泾阳县| 陆川县| 洪湖市| 古田县| 灵丘县| 纳雍县| 梧州市| 富阳市| 阿勒泰市| 报价| 砚山县| 嘉定区| 基隆市| 江山市| 青神县|