亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C# 數(shù)據(jù)類型

C#是一種強(qiáng)類型的語(yǔ)言。這意味著我們必須聲明一個(gè)變量類型,該變量指示將要存儲(chǔ)的值的類型,例如整數(shù),浮點(diǎn)數(shù),十進(jìn)制,文本等。

以下聲明和初始化了不同數(shù)據(jù)類型的變量。

string stringVar = "Hello World!!";
int intVar = 100;
float floatVar = 10.2f;
char charVar = 'A';
bool boolVar = true;

C#主要將數(shù)據(jù)類型分為兩種:值類型和引用類型。值類型包括簡(jiǎn)單類型(例如int,float,bool和char),枚舉類型,結(jié)構(gòu)類型和Nullable值類型。引用類型包括類類型,接口類型,委托類型和數(shù)組類型。在下一章中將詳細(xì)了解值類型和引用類型。

C#數(shù)據(jù)類型

C#中的預(yù)定義數(shù)據(jù)類型

C#包括一些預(yù)定義的值類型和引用類型。下表列出了預(yù)定義的數(shù)據(jù)類型:

類型描述范圍后綴
byte8 位無(wú)符號(hào)整數(shù)類型0 到 255
sbyte8 位有符號(hào)整數(shù)類型-128 到 127
short16 位有符號(hào)整數(shù)類型-32,768 到 32,767
ushort 16 位無(wú)符號(hào)整數(shù)類型0 到 65,535
int32 位有符號(hào)整數(shù)類型-2,147,483,648

2,147,483,647


uint32 位無(wú)符號(hào)整數(shù)類型0 到 4,294,967,295u
long64 位有符號(hào)整數(shù)類型-9,223,372,036,854,775,808

9,223,372,036,854,775,807
l
ulong64 位無(wú)符號(hào)整數(shù)類型0 到 18,446,744,073,709,551,615ul
float32 位單精度浮點(diǎn)型-3.402823e38 到 3.402823e38f
double64 位雙精度浮點(diǎn)型-1.79769313486232e308 to 1.79769313486232e308d
decimal128 位精確的十進(jìn)制值,28-29 有效位數(shù)(+ 或-)1.0 x 10e-28  到 7.9 x 10e28m
char16 位 Unicode 字符任何有效的字符,例如 a,*, \x0058 (hex), or\u0058 (Unicode)
bool8 位邏輯 true/false 值True 或 False
object所有類型的基類

string

Unicode字符序列



DateTime表示日期和時(shí)間0:00:00am 1/1/01

11:59:59pm 12/31/9999

如上表所示,每種數(shù)據(jù)類型(字符串和對(duì)象除外)都包含值范圍。如果該值超出數(shù)據(jù)類型的允許范圍,則編譯器將給出錯(cuò)誤。例如,int數(shù)據(jù)類型的范圍是-2,147,483,648到2,147,483,647。因此,如果分配的值不在此范圍內(nèi),則編譯器將給出錯(cuò)誤。

    示例:編譯時(shí)錯(cuò)誤

// 編譯時(shí)錯(cuò)誤:無(wú)法將類型'long'隱式轉(zhuǎn)換為'int'。
int i = 21474836470;

無(wú)符號(hào)整數(shù),long,float,double和decimal類型的值必須分別以u(píng),l,f,d和m為后綴。

uint ui = 100u;
float fl = 10.2f;
long l = 45755452222222l;
ulong ul = 45755452222222ul;
double d = 11452222.555d;
decimal mon = 1000.15m;

別名與.NET類型

預(yù)定義的數(shù)據(jù)類型為其.NET類型(CLR類)名稱的別名。下表列出了預(yù)定義數(shù)據(jù)類型的別名和相關(guān)的.NET類名稱。

別名.NET類型類型
byteSystem.Bytestruct
sbyteSystem.SBytestruct
intSystem.Int32struct
uintSystem.UInt32struct
shortSystem.Int16struct
ushortSystem.UInt16struct
longSystem.Int64struct
ulongSystem.UInt64struct
floatSystem.Singlestruct
doubleSystem.Doublestruct
charSystem.Charstruct
boolSystem.Booleanstruct
objectSystem.ObjectClass
stringSystem.StringClass
decimalSystem.Decimalstruct
DateTimeSystem.DateTimestruct

這意味著無(wú)論您定義的是int還是Int32,變量都相同。

int i = 345;
Int32 i = 345;// 同上

類型轉(zhuǎn)換

某些數(shù)據(jù)類型的值會(huì)在C#中自動(dòng)轉(zhuǎn)換為不同的數(shù)據(jù)類型。這稱為隱式轉(zhuǎn)換。

int i = 345;
float f = i;

Console.WriteLine(f); //輸出:345

在上面的實(shí)例中,整型變量 i 的值被賦給float類型 f 的變量,因?yàn)檫@個(gè)轉(zhuǎn)換操作是在C#中預(yù)定義的。

以下是隱式數(shù)據(jù)類型轉(zhuǎn)換表。

隱式轉(zhuǎn)換
sbyteshort, int, long, float, double, decimal
byteshort, ushort, int, uint, long, ulong, float, double, decimal
shortint, long, float, double, or decimal
ushortint, uint, long, ulong, float, double, or decimal
intlong, float, double, or decimal.
uintlong, ulong, float, double, or decimal
longfloat, double, or decimal
ulongfloat, double, or decimal
charushort, int, uint, long, ulong, float, double, or decimal
floatDouble

從int、uint、long或ulong轉(zhuǎn)換為float以及從long或ulong轉(zhuǎn)換為double可能會(huì)導(dǎo)致精度損失。沒(méi)有數(shù)據(jù)類型隱式轉(zhuǎn)換為char類型。

但是,并非所有數(shù)據(jù)類型都隱式轉(zhuǎn)換為其他數(shù)據(jù)類型。例如,int類型不能隱式轉(zhuǎn)換為uint。必須明確指定它,如下所示。

public static void Main()
{
    int i = 100;
    uint u = (uint) i;
    Console.Write(i);
}

在上面的示例中,整數(shù)i通過(guò)在括號(hào)(uint)中指定uint顯式地轉(zhuǎn)換為uint。這將把整數(shù)轉(zhuǎn)換成uint。