1. 程式人生 > >C# 類型和變量

C# 類型和變量

維數 支持 15位 實現 有符號 派生 枚舉類型 -s 返回值

1.C#有兩種類型:值類型和引用類型.值類型的變量直接包含數據,而引用類型的變量則存儲對數據(稱為"對象")的引用.借助引用類型,兩個變量可以引用同一對象;因此,對一個變量執行的運算可能會影響另一個變量的對象.借助值類型,每一個變量都有自己的數據副本;因此,對一個變量執行的運算不會影響另一個變量(ref和out參數變量除外);

2.C#值類型又細分為簡單類型,枚舉類型,結構類型和可以為null的值類型.C#引用類型有細分為類類型,接口類型,數組類型和委托類型.

3.值類型

a.簡單類型:

有符號的整型:sbyte(s = signed, 8 b), short(16 b),int(32),long(64).

無符號的整型:byte(8),ushort(u = unsigned),uint,ulong,

Unicode字符:char utf-16;

IEEE浮點:float,double 32位單精度和64位雙精度 IEC-60559格式表示 7位精度和15位精度

高精度浮點:decimal 適用於財務和貨幣計算的128位數據類型 至少為28位精度

布爾:bool

b.枚舉類型:格式為enum E {...}的用戶定義類型

c.結構類型: 格式為struct S {...}的用戶定義類型

d.可以為null的值類型: 值為null的其他所有值類型的擴展.

4.引用類型:

a.類類型:

  其他所有類型的最終基類:object

  Unicode字符串:string utf-16代碼單元

  格式為class C {...}的用戶定義類型

b.接口類型 : 格式為: interface I {...} 的用戶定義類型

c.數組類型 : 一維和多維, 例如 int[] 和 int[,];

d.委托類型 : delegate int D(...)的用戶定義類型

5.類型聲明指定新類型的名稱和成員

a.class類型定義包含數據成員(字段)和函數成員(方法,屬性及其他)的數據結構.類類型支持單一繼承和多形性,及派生類可以擴展和專門針對基類的機制.?

b.struct 類型定義包含數據成員和函數成員的結構,這一點與類類型相識.不過,這與類不同的是,結構是值類型,通常不需要進行堆分配.結構類型不支持用戶指定繼承,並且所有結構類型均為隱式繼承類型object

c.interface 類型將協定定義為一組已命名的公共函數成員.實現interface的class或struct必須提供接口函數成員的實現代碼.interface 可以繼承多個基接口,class和strut可以實現多個接口

d.delegate類型表示引用包含特定參數列表和返回值類型的方法.通過委托,可以將方法視為可分配給變量並作為參數傳遞的實體.委托類同於函數式語言提供的函數類型。委托也類似於其他一些語言中的函數指針概念。但與函數指針不同的是,委托不僅面向對象,還類型安全。??

e.enum類型是一種包含已命名常亮的獨特類型。每個enum類型都有一個基礎類型(必須是八種整型之一)。enum類型的值集與基礎類型的值集相同。?

6.C#支持任意類型的一維和多維數組。

數組的聲明賦值,非0開始,復制,不安全數組訪問:http://www.cnblogs.com/Demon-Su/p/7440672.html

。更多的舊不敲了,https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/types-and-variables;看都沒看懂那個不可為null的值類型,覺得那4行不符合邏輯。不求甚解,之後還要深入的。

C# 類型和變量