国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#8.0本質(zhì)論第二章--數(shù)據(jù)類型

這篇具有很好參考價(jià)值的文章主要介紹了C#8.0本質(zhì)論第二章--數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

C#8.0本質(zhì)論第二章–數(shù)據(jù)類型

2.1基本數(shù)據(jù)類型

C#的基本數(shù)據(jù)類型都有關(guān)鍵字與之關(guān)聯(lián),decimal是特殊的浮點(diǎn)數(shù)類型,能存儲大數(shù)字而無表示錯(cuò)誤。

2.1.1整數(shù)類型

C#中有8種整數(shù)類型

類型 大小 BCL名稱 后綴
sbyte 8位 System.SByte
byte 8位 System.Byte
short 16位 System.Int16
ushort 16位 System.UInt16
int 32位 System.Int32
uint 32位 System.UInt32 U或u
long 64位 System.Int64 L或l
ulong 64位 System.UInt64 UL或ul

C#所有基元類型都有短名稱和完整名稱,完整名稱對應(yīng)**BCL(基類庫)**中的類型名稱,該名稱在所有語言中都相同,對程序集中的類型進(jìn)行了唯一性標(biāo)識。從編譯器角度看,最終生成的CIL代碼看不出源代碼具體使用的是哪一種。不要時(shí)而用短名稱時(shí)而用完整名稱,比如用string而不是System.String。

2.1.2浮點(diǎn)類型

浮點(diǎn)數(shù)精度可變,除非分母恰好是2的整數(shù)冪,否則用二進(jìn)制浮點(diǎn)類型無法準(zhǔn)確表示該數(shù)比如0.1容易表示成0.09999999…或者0.10000…1,

類型 大小 BCL名稱 有效位數(shù) 后綴
float 32位 System.Single 7 F或f
double 64位 System.Double 15-16 D或d
2.1.3decimal類型
類型 大小 BCL名稱 有效位數(shù) 后綴
decimal 128位 System.Decimal 28-29 M或m

和浮點(diǎn)數(shù)不同,decimal類型保證范圍內(nèi)的所有十進(jìn)制數(shù)都是精確的,但是它的范圍較小,計(jì)算速度稍慢,但差別不大可以忽略不計(jì)。之所以用m表示decimal是因?yàn)檫@種數(shù)據(jù)類型經(jīng)常用于貨幣(monetary)計(jì)算。

2.1.4字面值

字面值(literal value)表示源代碼中的固定值。直接將值放到源代碼中稱為硬編碼(hardcoding)。默認(rèn)情況下輸入帶小數(shù)點(diǎn)的字面值,編譯器會自動把它解釋成double類型,整數(shù)值通常默認(rèn)為32位int,如果值太大編譯器會把它解釋成long。此外,C#編譯器允許向非int的數(shù)值類賦值,如:

short s = 42;
byte b = 77;

這一點(diǎn)僅對字面值成立,而下面是非法的:

b = s;

有時(shí)數(shù)字很大,為了解決可讀性問題,C#7.0新增了對數(shù)字分隔符的支持,可在書寫字面值時(shí)用下劃線(_)分割,如9_814_072_356

0x002A表示16進(jìn)制42,從C#7.0開始可將數(shù)字表示成二進(jìn)制值,如0b101010表示42,從C#7.2開始可以把數(shù)字分隔符放到x或b后面

輸出時(shí)可以將數(shù)字格式化成十六進(jìn)制:

//輸出0x2A,即十六進(jìn)制的42
System.Console.Writeline($"0x{42:X}");

為了更準(zhǔn)確地表示double值的字符串形式,可以使用格式字符串和**round-trip格式說明符R(或r)**進(jìn)行轉(zhuǎn)換。

2.2更多基本類型

2.2.1布爾類型
類型 大小 BCL名稱
bool 8位 System.Boolean

雖然一個(gè)二進(jìn)制位足以容納布爾一個(gè)類型的值,但是在C#里bool實(shí)際是一個(gè)字節(jié)大小

2.2.2字符類型
類型 大小 BCL名稱
char 16位 System.Char

char表示16位字符,雖然大小和ushort相同,但是char是C#特有類型,要單獨(dú)對待(C++里是8位)。

反斜杠和特殊字符代碼統(tǒng)稱為轉(zhuǎn)義序列(escape sequence)。

2.2.3字符串
類型 BCL名稱
string System.String

零或多個(gè)字符的有限序列稱為字符串。

C#允許在字符串前使用@符號,指明轉(zhuǎn)義序列不被處理,結(jié)果是一個(gè)逐字字符串字面值(verbatim string literal)。(對應(yīng)C++11里的raw string)。

和C++不同的是,C#不自動連接字符串字面值。(是的,C++里"ab" “cd"會自動連接成"abcd”)。

假如同一字符串面值在程序集中多次出現(xiàn),那么編譯器在程序集中只定義字符串一次,且所有變量都指向它。

逐字和插值可組合使用,先指定$再指定@。

字符串插值是調(diào)用string.Format()方法的語法糖,比如:

//表面上
System.Console.Writeline($"your name is {firstname},{lastname}.");
//實(shí)際上
object[] args = new object[] {firstname,lastname};
System.Writeline($"your name is {0},{1}.",args);

實(shí)現(xiàn)了某種程度上的本地化支持,不會因?yàn)樽址斐删幾g后代碼注入。

一些字符串方法:Format,Concat,Compare,StartsWith,EndsWith,ToLower,ToUpper,Trim,TrimEnd,Replace.

之前調(diào)用靜態(tài)方法需附加如命名空間和類型名前綴,可利用C#6.0新增的using static指令避免這些前綴。只支持靜態(tài)方法和屬性。

如果要在插值或格式化的字符串中添加實(shí)際的左右大括號,可連寫兩個(gè)大括號來表示,如$“{{ {123} }}“表示字符串”{ 123 }”.

輸出換行所需的字符由操作系統(tǒng)決定,Windows的換行符是\r和\n兩個(gè)字符組合,而UNIX是單個(gè)\n,

要依賴System.WriteLine()和System.Enviroment.NewLine()而不是\n來確保跨平臺兼容。

C#語法允許像訪問成員變(在C#中稱為字段)量那樣訪問屬性(Property),屬性定義了稱為**賦值方法(setter)取值方法(getter)**的特殊方法

string類型的關(guān)鍵特征是它不可變(immutable),處于性能考慮,沒有提供修改現(xiàn)有字符串內(nèi)容的機(jī)制,不可能在同一個(gè)內(nèi)存位置將字符串中的字母全部轉(zhuǎn)換成大寫,只能在其他位置新建字符串,讓它成為舊字符串大寫字母版本,而舊字符串不會被修改。

如有大量字符串需要修改,可考慮使用System.Text.StringBuilder類型而不是string。

2.2.4null和void

將null賦給引用類型的變量和根本不賦值是不一樣的概念。將null賦給string變量和為變量賦值""也不是一樣的概念。

聲明變量時(shí)在名稱后加一個(gè)問號,表示該變量可以被設(shè)置為null,這便是可空修飾符(C#2.0后)。

在C#8.0之前,可控修飾符不能用于引用類型變量的聲明,從C#8.0開始,有了可空引用類型的概念,若要啟動,則需要在聲明變量之前任意位置放置"#nullable enable"語句。被啟用時(shí)將沒有可控修飾符的變量設(shè)置為null將會產(chǎn)生警告信息。

void有兩個(gè)含義:標(biāo)記方法不返回任何值,以及代表指向未知類型的存儲位置的一個(gè)指針,但這種在C#中比較罕見。

2.3數(shù)據(jù)類型轉(zhuǎn)換

有可能造成數(shù)據(jù)丟失或拋出異常的任何轉(zhuǎn)換都要執(zhí)行顯示轉(zhuǎn)型。相反的都可以進(jìn)行隱式轉(zhuǎn)型。

2.3.1顯示轉(zhuǎn)型

默認(rèn)情況下,容不下的數(shù)據(jù)在賦值時(shí)會悄悄地溢出,但將代碼放到checked塊中,就會使運(yùn)行時(shí)引發(fā)System.OverflowException異常:

checked
{
	int n = inr.MaxValue+1;
}

還支持unchecked塊強(qiáng)制不進(jìn)行溢出檢查。

C#不支持從數(shù)值類型到布爾類型的有效轉(zhuǎn)換,是為了避免可能發(fā)生的歧義,還有助于避免用戶在本應(yīng)使用相等操作符的時(shí)候用賦值操作符。

2.3.2隱式轉(zhuǎn)型
2.3.3不使用轉(zhuǎn)型操作符的類型轉(zhuǎn)換

每個(gè)數(shù)值數(shù)據(jù)類型都包含一個(gè)Parse()方法,允許將字符串轉(zhuǎn)換成對應(yīng)的數(shù)值類型,還可以用特殊類型System.Convert()。

所有類型都支持ToString()方法。

從C#2.0起,所有基元數(shù)值類型都包含靜態(tài)TryParse()方法,與Parse()的區(qū)別是,轉(zhuǎn)換失敗不是拋出異常,而是返回false。

從C#7.0開始不用先聲明只準(zhǔn)備作為out參數(shù)使用的變量,該變量在if內(nèi)部和外部均可使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-634074.html

到了這里,關(guān)于C#8.0本質(zhì)論第二章--數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第二章 02Java基礎(chǔ)-數(shù)據(jù)類型、標(biāo)識符、鍵盤錄入

    今天我們學(xué)習(xí)Java基礎(chǔ),數(shù)據(jù)類型、標(biāo)識符、鍵盤錄入 1.數(shù)據(jù)類型大體上可以分為兩類,一類是基本數(shù)據(jù)類型,另外一類是引用數(shù)據(jù)類型。今天我們學(xué)習(xí)基本數(shù)據(jù)類型。 2.基本數(shù)據(jù)類型可以分為四類八種,整數(shù)(byte short int long)、浮點(diǎn)數(shù)(float double)、字符(char)和布爾(

    2024年02月06日
    瀏覽(96)
  • C++第二章:變量和基本內(nèi)置類型

    C++第二章:變量和基本內(nèi)置類型

    C++定義了一套包括算數(shù)類型和空類型在內(nèi)的基本數(shù)據(jù)類型。 其中算數(shù)類型包含了字符、整形數(shù)、布爾值、浮點(diǎn)數(shù)。空類型不對應(yīng)具體的值,僅用于一些特殊的場合,例如最常見的是:當(dāng)一個(gè)函數(shù)不返回任何值時(shí)使用空類型作為返回類型。 算數(shù)類型分為兩種:整形(包括字符和

    2024年02月06日
    瀏覽(25)
  • 【考研數(shù)學(xué)】概率論與數(shù)理統(tǒng)計(jì) —— 第二章 | 一維隨機(jī)變量及其分布(1,基本概念與隨機(jī)變量常見類型)

    【考研數(shù)學(xué)】概率論與數(shù)理統(tǒng)計(jì) —— 第二章 | 一維隨機(jī)變量及其分布(1,基本概念與隨機(jī)變量常見類型)

    暑假接近尾聲了,爭取趕一點(diǎn)概率論部分的進(jìn)度。 設(shè)隨機(jī)試驗(yàn) E E E 的樣本空間為 Ω Omega Ω , X X X 為定義于樣本空間 Ω Omega Ω 上的函數(shù),對于任意 w ∈ Ω w in Omega w ∈ Ω ,總存在唯一確定的 X ( w ) X(w) X ( w ) 與之對應(yīng),稱 X ( w ) X(w) X ( w ) 為隨機(jī)變量,一般記為 X X X 。 隨機(jī)

    2024年02月11日
    瀏覽(28)
  • 第二章-數(shù)據(jù)傳輸安全

    第二章-數(shù)據(jù)傳輸安全

    VPN虛擬專用網(wǎng) :在ISP運(yùn)營商公用網(wǎng)絡(luò)中搭建專用的安全數(shù)據(jù)通道 VPN :隧道 – 封裝技術(shù) 常見VPN :IPSec VPN、MPLS VPN、GRE VPN、SangFor VPN、PPTP VPN、L2TP VPN / L2F VPN 1)按應(yīng)用場景分(業(yè)務(wù)類型) Client-LAN VPN(access VPN)客戶端到網(wǎng)絡(luò):PPTP VPN、L2TP VPN / L2F VPN、SSL VPN、IPSec VPN LAN-LAN V

    2024年01月23日
    瀏覽(26)
  • 大數(shù)據(jù)之路-日志采集(第二章)

    大數(shù)據(jù)之路-日志采集(第二章)

    阿里巴巴的日志采集體系方案包括兩大體系: Ap us.JS Web(基于瀏覽器)日志采集技術(shù)方案: UserTrack APP 端(無線客戶端 日志采集技術(shù)方案。 本章從瀏覽器的頁面日志采集、無線客戶端的日志采集以及我們遇到的日志采集挑戰(zhàn)三塊內(nèi)容來闡述間里巴巴的日志采集經(jīng)驗(yàn)。 瀏覽器

    2024年01月25日
    瀏覽(25)
  • 【第二章:數(shù)據(jù)的表示和運(yùn)算】

    【第二章:數(shù)據(jù)的表示和運(yùn)算】

    探討的兩大主題:一步步遞進(jìn) 那么現(xiàn)在就需要探究 數(shù)據(jù)如何以2進(jìn)制的形式在計(jì)算機(jī)中表示的呢?? 那么還有就是計(jì)算機(jī)如何進(jìn)行數(shù)據(jù)的算術(shù)和邏輯運(yùn)算的?? 我們平常使用的是10進(jìn)制的數(shù)據(jù),然而計(jì)算機(jī)能夠識別的是2進(jìn)制的01序列串。 主要是權(quán)重的不同。一方面符號表示

    2024年02月04日
    瀏覽(26)
  • 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)內(nèi)容-----第二章算法

    算法 是指,解決問題或執(zhí)行任務(wù)的一系列步驟、規(guī)則或指令的有序集合。它可以用來解決各種不同的問題,例如搜索、排序、優(yōu)化、圖像和語音識別等。在計(jì)算機(jī)科學(xué)中,算法通常用于編寫程序以實(shí)現(xiàn)特定任務(wù)。算法可以被用于各種不同的領(lǐng)域,如人工智能、機(jī)器學(xué)習(xí)、數(shù)據(jù)

    2024年02月06日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(3)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(3)

    大家好,很高興又和大家見面了?。?! 在上一篇中,咱們介紹了順序表的基本概念,以及通過C語言實(shí)現(xiàn)順序表的創(chuàng)建和對表長的修改。今天咱們將詳細(xì)介紹一下使用C語言實(shí)現(xiàn)順序表的增刪改查。接下來,跟我一起來看看今天的內(nèi)容吧?。?! 我們先來回顧一下上一篇的內(nèi)容,

    2024年02月04日
    瀏覽(28)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(1)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(1)

    大家好,很高興又和大家見面啦!?。慕裉扉_始,我們將進(jìn)入線性表的學(xué)習(xí)。 線性表是算法題命題的重點(diǎn)。這類算法題實(shí)現(xiàn)起來比較容易且代碼量較少,但是要求具有最優(yōu)的性能(時(shí)間復(fù)雜度、空間復(fù)雜度),因此,我們應(yīng)該牢固掌握線性表的各種基本操作(基于兩種存儲

    2024年02月03日
    瀏覽(28)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(4)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(4)

    大家好,很高興又和大家見面啦?。?! 在前面的內(nèi)容中我們介紹了線性表的第一種存儲方式——順序存儲,相信大家經(jīng)過前面的學(xué)習(xí)應(yīng)該已經(jīng)掌握了對順序表的一些基本操作了。今天,我們將開始介紹線性表的第二種存儲方式——鏈?zhǔn)酱鎯Α?線性表中的數(shù)據(jù)元素在存儲時(shí),

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包