国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

2、C#核心編程結構

2019-11-17 02:34:47
字體:
來源:轉載
供稿:網友

2、C#核心編程結構

2015-02-06 09:19 by 七星端硯, ... 閱讀, ... 評論, 收藏, 編輯 本學習主要參考Andrew Troelsen的C#與.NET4高級程序設計,這小節主要述說以下幾個東西:

Hello World的Main方法:

利用VS2010新建一個控制臺應用程序Hello World,完善代碼如下:

類和Main方法:

這里系統自動創建了一個叫做PRogram的類,并且里面有個默認的Main方法。在這里,我們程序的類名可以任意的修改,但是Main()方法卻必須唯一,修改之后運行會出錯。因為Main()方法是我們這個應用程序的入口。錯誤提示如下:Main方法是引用程序的入口,處理邏輯都在Main方法內部。而默認,我們生成了一個靜態的、有void(空)返回值,接受一個參數字符串數組的形式。不過,這不是Main方法的唯一形式,除此之外,我們還有以下幾個簽名形式。如果定義的入口函數非空返回值,那么我們必須要程序結束的時候提供一個返回值。(返回值0表示正常結束):static int Main(string[] args){ //處理邏輯 return 0;}//無參數無返回值static void Main(){}//無參數有返回值static int Main(){ return 0;}查看參數,可以通過System.Environment類的成員來實現。(Environment.GetCommandLineArgs()),該函數返回一個string數組,可以通過遍歷查詢該返回數組得到參數。

System.Console類,該類主要有如下三個功能:

1、進行基本的輸入輸出。如上代碼WriteLine方法表示輸出在控制臺,而ReadLine則表示接受一個輸入。除此之外,還有Write和Read方法,用法和他們類似。2、格式化控制臺輸出。可以用占位符來格式化,形式如:Console.WriteLine("{0},{1}",123,456);其中占位符的數字對應后面輸出參數的次序,從0開始。并且占位符可以不分先后。3、格式化數值數據。類似于C語言和C++里面的%d,%x的表示輸出數字和十六進制格式,這里面可以用D/d和X/x。用法:Console.WriteLine("c format:{0:c}", 9999);4、除此之外,在控制臺應用程序外格式化數值數據。利用string.Format()方法來格式化,用法:string userNum = string.Format("100000 in hex is {0:x}", 100000);

系統數據類型和C#簡化符號:

和任何編程語言一樣,C#定義了一組用于表示局部變量、成員變量、返回值以及輸入參數的基本數據類型。如bool、byte、short、int、long等。不過,和其他的編程語言不同,這些關鍵字不只是簡單的編譯器可以識別的標記,C#數據類型關鍵字其實是System命名空間中完整類型的簡化符號,如ulong是System.UInt64的簡寫。變量聲明和初始化:int myInt; string myString;初始化可以直接賦值int myInt=0;也可以如此,int a=1,b=2,c=a;內建數據類型和new操作符:所有的內建數據類型都支持默認構造函數,這些類型可以用new開創建。如bool類型,也可以如此表示:bool b=new bool();數據類型類的層次結構:.net基本數據類型都有一個類層次結構,累的層次結構頂端的類型會為派生類型提供一些默認行為。這些核心類型之間的關系如下圖所示: 數值數據類型的成員:我們為了繼續研究C#的數據類型,必須知道.net的數值類型支持MaxValue和MinValue屬性,這兩個屬性說明了給定的類型可以存儲的范圍。用法,int.MaxValue,double.MaxValue等。System.Boolean成員:它不支持MinValue和MaxValue,因為他只能來源于集合{true|false}。但卻支持TrueString和FalseString屬性集合(相應地返回True或False)。System.Char成員:C#的文本數據是由string和char關鍵字表示的,兩者都是基于Unicode的。string表示連續字符,char表示單個字符。從字符串數據中解析數值(.Parse()方法):這個技術在想把用戶輸入的數據轉換成一個數值的時候非常有用。用法int i=int.Parse("8");System.DateTime和System.TimeSpan:DateTime表示日期時間,而TimeSpan則允許你方便的使用各個成員定義和轉換時間單位。.net 4 System.Numerics命名空間:它定義了一個BigInteger結構,用來表示較大的數值,它沒有固定的上下限。

使用字符串數據:

基本字符串操作:string.Length獲取字符串長度、string.ToUpper獲取字符串變成大寫的值、string.ToLower獲取字符串變成小寫的值。字符串拼接:string.Concat(),不過我們也可以通過+號來表示拼接。兩者的編譯結果是一樣的。轉義字符:和C一樣,都是反斜杠/,可以將C#中的特殊字符原本的表達出來。定義逐字字符串:C#中引入了以@為前綴的字符串字面量激發,屬于稱為逐字字符串。使用它的字符串就不用使用轉義字符了。字符串和相等性:用String的Equals方法或內嵌的相等操作符(==等)來進行相等性操作,這里表示指的是區分大小寫、逐字符的相等性操作,雖然String類型是引用類型。字符串是不可變的:string類型的方法,氣勢反悔了一個按修改格式的新字符串對象,原來的字符串不會改變的。所以,string類如果被濫用,它就會變得低效、并導致代碼膨脹,特別是在字符串拼接的時候。(因為每次操作都要在托管堆上加載一個新的字符串對象,原有的最終會被垃圾回收)System.Text.StringBuilder類型:此類和System.String類相似,不過為了防止String類出現的低效問題,StringBuilder定義了很多用來替換和格式化片段的方法。它的獨特之處在于,當我們調用這個類型的成員時,都是直接修改對象內部的字符數據(因此更高效),而不是或許按修改后格式的數據副本。

窄化和寬化數據類型轉換:

即大值和小值只見的運算由于C#是類型安全的,窄化運算會有錯誤,不過,可以通過強制轉換來窄化,但這樣很可能造成數據丟失。C#提供的checked和unchecked關鍵字將確保數據修士肯定會被檢測到。

checked的用法:

用在一句代碼里如下:byte sum=checked((byte)Add(b1,b2));用在一個語句塊上,檢測是不是強制溢出:checked{ byte sum=(byte)Add(b1,b2); Console.WriteLine(sum);}unchecked關鍵字和checked的關鍵字用法一樣,只不過他會檢查所有運算邏輯,進制個別情況系跑出語出的異常。System.Convert的作用:使用它的一個好處是,它提供了語言無關的方式來進行數據類型的轉換(例如,VB的類型轉換完全不同的C#)。

隱式類型本地變量(var):

C#語言定義了一種可以使用var關鍵字創建隱式類型的本地變量。使用var關鍵字不必指定具體的數據類型(如int、bool、string)。這么做時,編譯器將根據本地數據點的初始值類自動推斷實際的數據類型。用法如下:var myInt=0;//表示定義的是個整形,var等同于intvar myBool=true;//表示定義是個布爾值。其中var等同于bool隱式類型變量的限制:首先,隱式類型只能用于方法或屬性范圍內的本地變量。用var關鍵字定義返回值、參數或者自定義類型的字段數據都是不合法的。同樣,用var關鍵字聲明的本地變量必須在聲明時分配初始值,并且這個初始值不能為null。最后,用C#的?標記定義可控的隱式類型本地變量是不合法的。隱式類型數據是強類型數據:隱式類型變量在編譯時影響變量的生命,之后該數據點將被視為它生命的類型,為該變量分配不同的類型將會導致編譯時錯誤。隱式類型變量用途:在Linq查詢中將會變得非常有用。

C#迭代結構:

for循環,同C和C++中的for循環用法一樣,我們可以創建復雜的終止條件,構建無限循環,使用goto、continue、break關鍵字。foreach/in循環:C#foreach關鍵字允許遍歷數組中的所有項,不需要測試數組的上線。foreach結構中使用var,此時,編譯器可以準確的判斷出該類型的準確的類型。while和do/while循環:當希望執行一段語句直到滿足某個終止條件時,while循環結構很有用。和簡單的while循環類似,當我們需要進行一些次數補丁的動作時,可以使用do/while循環。兩者的區別是,do/while循環肯定會執行至少一次對應的代碼塊,而while循環則有可能不會執行就結束。

條件結構和關系/相等操作符:

if/else語句:C#中的if/else語句只能作用域布爾表達式,不能用于諸如-1、0這樣的值,因此if/else語句通常會包含一些C#操作符。(==、!=、<、>、<=、>=以及邏輯操作符&&、||、!)。說明:&&和||操作符在必要時都會‘短路’,也就是說,如果一個表達式被確定為false,其他的表達式就不會被檢查了。switch語句:和C系列語言中的一樣,switch語句允許我們根據定義的選擇來處理程序流程。C#要求每一個case(包含default)包含以break或goto終止的可執行語句來避免失敗。

小結:

這一小節我們了解了每一個C#可執行程序的一些基本的結構,以及探討了一些C#內建數據類型的細節。并且介紹了var隱式關鍵字和C#支持的條件和迭代語句。接下來的一小節我們將會完成對和新語言特性的研究
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定结县| 建始县| 石阡县| 红安县| 武冈市| 青川县| 富源县| 平舆县| 景德镇市| 吉林省| 遂平县| 瓮安县| 渭源县| 高阳县| 吴忠市| 陈巴尔虎旗| 德阳市| 成都市| 田东县| 万载县| 呈贡县| 凭祥市| 彰化县| 资兴市| 喀喇| 黄骅市| 古田县| 双桥区| 曲麻莱县| 琼中| 林芝县| 称多县| 新田县| 东海县| 武清区| 黄大仙区| 宁河县| 盐山县| 沽源县| 吉林市| 嘉荫县|