成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

編程入門:C#類型和C#變量

開發 后端
本文分別介紹了C#的編程入門知識,即C#類型和C#變量,帶領大家走進C#語言的大門。

C#類型有兩種:值類型(value type)和引用類型(reference type)。值類型變量直接包括它們的數據,而引用類型變量存儲的是它們的數據引用,后者被認為是對象。對于引用類型,有可能兩個變量引用相同的對象,因此對其中一個變量的操作可能影響另一個對象引用的對象。對于值類型,每個變量都有自己的數據拷貝,因此對一個變量的操作不可能影響其他變量(ref和out參數變量例外)。

C#的值類型進一步劃分為簡單類型(simple type)、枚舉類型(enum type)和結構類型(struct type);C#的引用類型進一步劃分為類類型(class type)、接口類型(interface type)、數組類型(array type)和委托類型(delegate type)。

表1.1為整個C#類型系統的概述。

表1.1  C#類型系統的概述

表1.1  C#類型系統的概述 

8個整型類型分別支持8位、16位、32位和64位整數的有符號或者無符號格式。

兩個浮點類型,float和double,分別用32位單精度和64位雙精度的IEEE754格式表示。

decimal是128位的數據類型,適合財金和貨幣方面的計算。

C#的bool類型用于表示布爾值——true或者false。

在C#中,字符和字符串的處理使用Unicode編碼。char類型表示16位的Unicode編碼單元,string類型表示16位的Unicode編碼單元的序列。

表1.2總結了C#的數值類型。

表1.2  C#的數值類型

表1.2  C#的數值類型 

C#程序使用類型聲明創建新類型。類型聲明指定新類型的名字和成員。有5種C#類型可由用戶自定義:類類型、結構類型、接口類型、枚舉類型和委托類型。

類類型定義了一個數據結構,它包括數據成員(字段)和函數成員(方法、屬性及其他)。類類型支持繼承和多態,即派生類能夠擴展和特殊化基類的機制。

結構類型與類類型相似,表示帶有數據成員和函數成員的結構。然而,與類類型不同的是,結構是值類型,不需要堆分配。結構不支持用戶指定的繼承,所有的結構類型隱式地繼承類型object。

接口類型定義了一個約定,作為一組函數成員命名的集合。實現接口的類或結構必須提供接口函數成員的實現。接口可能從多個基接口繼承而來,類或結構也可能實現多個接口。

枚舉類型是帶有命名常量的獨特類型。每個枚舉類型有一個底層的類型,它必須是8個整型類型之一。枚舉類型的值集與底層類型的值集相同。

委托類型通過特定的參數列表和返回類型表示對方法的引用。委托將方法處理為實體,實體能夠賦值給變量,并且當做參數傳遞。委托類似于某些程序語言中的方法指針,不同之處在于,委托是面向對象的,并且是類型安全的。

C#支持任何類型的一維和多維數組。不同于其他類型,數組類型在它們被使用前不必聲明。事實上,數組類型的構造是由某個類型名加上方括號。例如,int[]是int的一維數組,int[,]是int的二維數組,而int[][]是int的一維數組的一維數組。

C#類型系統是統一的,這樣任何類型的值都能夠被處理成對象。C#中每一個類型直接或者間接從object類繼承而來,并且object是所有類型最終的基類。值類型的值可以通過執行裝箱(boxing)和取消裝箱(unboxing)的操作處理為對象。在下面的示例中,int被轉換為object,然后又轉回到int。

  1. using System;  
  2.  
  3. class Test  
  4. {  
  5.     static void Main(){  
  6.        int i=123;  
  7.        object o=i;     //裝箱  
  8.        int j=(int)o;    //取消裝箱  
  9.     }  
  10. }  

當值類型的值被強制類型轉換為object時,就會分配持有該值的對象實例(也稱為“箱子”),并且值也被拷貝到那個箱子里。相反地,當object引用被強制類型轉換為值類型時,要檢查這個引用類型是否是當前值類型的箱子,如果是的話,箱子中的值就會被拷貝出來。

C#統一的類型系統意味著值類型能夠“按需”轉換為對象。由于這種統一性,使用object類型的通用類庫,例如.NET框架中的集合類,能夠通過引用類型和值類型使用。

存在幾種C#變量,包括字段、數組元素、局部變量和參數。變量表示了存儲的位置,并且每一個變量都有一個類型,以決定什么樣的值能夠存入變量中,如表1.3所示。

表1.3  C#變量

表1.3  C#的變量 

C#類型和C#變量的知識就介紹到這里,希望對大家有用。

【編輯推薦】

  1. 總結C#語言命名規范
  2. C#反射相關知識學習
  3. 大話F#和C#:是否會重蹈C#失敗的覆轍?
  4. 總結和學習C#接口
  5. 學習C#程序有感
責任編輯:book05 來源: 新浪博客
相關推薦

2009-09-02 17:10:45

C#語言入門

2009-08-25 17:59:49

C#入門

2009-08-12 17:03:22

C#變量類型轉換

2009-08-24 11:02:52

C#接口映射

2009-08-31 14:34:46

C#值類型C#結構類型

2009-08-24 09:55:26

C#接口轉換

2009-08-10 17:25:58

C#匿名類型

2009-08-13 17:04:09

C#語言C#程序

2009-08-27 16:11:03

C# delegateC# event

2021-03-15 08:18:23

C#反射模塊

2009-08-19 16:39:44

C#值類型C#引用類型

2009-08-26 14:05:19

C#值類型和引用類型

2009-08-19 16:50:32

Visual C#C#語言特性

2009-08-14 17:09:48

C#引用類型

2009-08-26 15:46:01

C#匿名類型

2009-08-06 15:30:23

C#類型系統

2009-08-24 14:20:13

C# 強制類型轉換

2009-08-31 14:41:07

C#編程入門

2009-02-03 09:33:26

動態類型動態編程C# 4.0

2009-08-21 17:19:36

C#網絡編程入門
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产欧美一区二区三区久久 | 国产专区视频 | 精品免费看 | 91视频网址 | 97伦理影院 | 婷婷综合五月天 | 性网站免费 | 一级二级三级在线观看 | 久久精品欧美一区二区三区不卡 | 精品免费视频 | 日韩成人免费视频 | 欧美一级大片 | 天天天操 | 亚洲精品第一国产综合野 | 中文字幕日韩欧美一区二区三区 | 久久综合一区二区 | 国产第二页| 亚洲国产精品久久人人爱 | 99re视频在线 | 中文字幕国产精品 | a级黄色网 | 粉嫩一区二区三区四区公司1 | 国产欧美精品在线 | 国产精品1区2区 | 欧美一区二区在线免费观看 | 久久久久久国产免费视网址 | 97av视频在线 | 99re视频| 国产一区二区三区视频 | 国产精品国产成人国产三级 | 中文字幕91 | 久久一日本道色综合久久 | 免费网站在线 | 国产在线网站 | 激情五月婷婷丁香 | 国产午夜精品久久久久免费视高清 | 精品9999| 国产成人精品一区二区三区在线 | 日韩三级电影一区二区 | www.天天操.com | 国产精品久久久久久一区二区三区 |