第一章 初識C#

C# 語言介紹

<time class="date icons" datetime="2016-08-09T16:00:00.000Z" style="font-size: 14px; display: inline-block;">2016/08/10</time>

作者

C#(讀作“See Sharp”)是一種簡單易用的新式編程語言暮屡,不僅面向?qū)ο蟛舫觯€類型安全。 C# 源于 C 語言系列惭等,C珍手、C++、Java 和 JavaScript 程序員很快就可以上手使用辞做。

C# 是一種面向?qū)ο蟮恼Z言琳要。不僅如此,C# 還進一步支持面向組件的編程秤茅。 當代軟件設(shè)計越來越依賴采用自描述的獨立功能包形式的軟件組件稚补。 此類組件的關(guān)鍵特征包括:為編程模型提供屬性、方法和事件框喳;包含提供組件聲明性信息的特性课幕;包含自己的文檔。 C# 提供了語言構(gòu)造來直接支持這些概念五垮,讓 C# 成為一種非常自然的語言乍惊,可用于創(chuàng)建和使用軟件組件。

多項 C# 功能有助于構(gòu)造可靠耐用的應(yīng)用程序:垃圾回收可自動回收無法訪問的未使用對象占用的內(nèi)存拼余;異常處理提供了一種結(jié)構(gòu)化的可擴展方法來執(zhí)行錯誤檢測和恢復(fù)污桦;C# 語言的類型安全設(shè)計禁止讀取未初始化的變量、為范圍之外的數(shù)組編制索引或執(zhí)行未檢查的類型轉(zhuǎn)換匙监。

C# 采用統(tǒng)一的類型系統(tǒng)凡橱。 所有 C# 類型(包括intdouble等基元類型)均繼承自一個根object類型。 因此亭姥,所有類型共用一組通用運算稼钩,任何類型的值都可以一致地進行存儲、傳輸和處理达罗。 此外坝撑,C# 還支持用戶定義的引用類型和值類型,從而支持對象動態(tài)分配以及輕量級結(jié)構(gòu)的內(nèi)嵌式存儲粮揉。

為了確保 C# 程序和庫能夠隨著時間的推移以兼容的方式發(fā)展巡李,C# 設(shè)計更強調(diào)版本控制。 許多編程語言很少關(guān)注這個問題扶认,因此侨拦,當引入新版依賴庫時,用這些語言編寫的程序會出現(xiàn)更多不必要的中斷現(xiàn)象辐宾。 由于更強調(diào)版本控制狱从,直接受影響的 C# 設(shè)計方面包括單獨的virtualoverride修飾符膨蛮、關(guān)于方法重載決策的規(guī)則,以及對顯式接口成員聲明的支持季研。

Hello world

“Hello, World”程序歷來都用于介紹編程語言敞葛。 下面展示了此程序的 C# 代碼:

using System;
class Hello
{
    static void Main()
    {
        Console.WriteLine("Hello, World");
    }
}

C# 源文件的文件擴展名通常為.cs。 假設(shè)“Hello, World”程序存儲在文件hello.cs

中与涡,則可以使用下列命令行編譯此程序:

csc hello.cs

這會生成 hello.exe 可執(zhí)行程序集惹谐。 運行此應(yīng)用程序生成以下輸出:

Hello, World

編譯csc命令實現(xiàn)的是完整框架,可能并不所有平臺都適用递沪。

“Hello, World”程序始于引用System命名空間的using指令豺鼻。 命名空間提供了一種用于組織 C# 程序和庫的分層方法。 命名空間包含類型和其他命名空間款慨。例如,System命名空間包含許多類型(如程序中引用的Console類)和其他許多命名空間(如IOCollections)谬莹。 借助引用給定命名空間的using指令檩奠,可以非限定的方式使用作為相應(yīng)命名空間成員的類型。 由于使用using指令附帽,因此程序可以使用
Console.WriteLine作為System.Console.WriteLine的簡寫埠戳。
“Hello, World”程序聲明的Hello類只有一個成員,即Main方法蕉扮。Main方法是使用靜態(tài)修飾符進行聲明整胃。 實例方法可以使用關(guān)鍵字this引用特定的封閉對象實例,而靜態(tài)方法則可以在不引用特定對象的情況下運行喳钟。 按照約定屁使,Main靜態(tài)方法是程序的入口點。

程序的輸出是由System命名空間中Console類的WriteLine方法生成奔则。 此類由標準類庫提供蛮寂。默認情況下,編譯器會自動引用標準類庫易茬。

關(guān)于 C#酬蹋,要介紹的內(nèi)容還有很多。 下面各主題概述了 C# 語言元素抽莱。 通過這些概述范抓,可以了解 C# 語言所有元素的基本信息,并獲得深入了解 C# 語言元素所需的信息:

  • 程序結(jié)構(gòu)
    • 了解 C# 語言中的關(guān)鍵組織概念:程序食铐、命名空間匕垫、類型成員程序集璃岳。
  • 類型和變量
    • 了解 C# 語言中的值類型年缎、引用類型變量悔捶。
  • 表達式
    • 表達式是在操作數(shù)運算符的基礎(chǔ)之上構(gòu)造而成。 表達式生成的是值单芜。
  • 語句
    • 語句用于表示程序的操作蜕该。
  • 類和對象
    • 是最基本的 C# 類型。

      對象是類實例洲鸠。 類是使用成員生成的堂淡,此主題也對此進行了介紹。

  • 結(jié)構(gòu)
    • 與類不同扒腕,結(jié)構(gòu)是屬于值類型的數(shù)據(jù)結(jié)構(gòu)绢淀。
  • 陣列
    • 數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),其中包含許多通過計算索引訪問的變量瘾腰。
  • 接口
    • 接口定義了可由類和結(jié)構(gòu)實現(xiàn)的協(xié)定皆的。 接口可以包含方法、屬性蹋盆、事件和索引器费薄。 接口不提供所定義的成員的實現(xiàn)代碼,僅指定必須由實現(xiàn)接口的類或結(jié)構(gòu)提供的成員栖雾。
  • 枚舉
    • 枚舉類型是包含一組已命名常量的獨特值類型楞抡。
  • 委托
    • 委托類型表示對具有特定參數(shù)列表和返回類型的方法的引用。 通過委托析藕,可以將方法視為可分配給變量并可作為參數(shù)傳遞的實體召廷。 委托類似于其他一些語言中的函數(shù)指針概念,但與函數(shù)指針不同的是账胧,委托不僅面向?qū)ο缶郝€類型安全。
  • 特性
    • 使用特性找爱,程序可以指定關(guān)于類型梗顺、成員和其他實體的附加聲明性信息。

下一頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末车摄,一起剝皮案震驚了整個濱河市寺谤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吮播,老刑警劉巖变屁,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異意狠,居然都是意外死亡粟关,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門环戈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闷板,“玉大人澎灸,你說我怎么就攤上這事≌谕恚” “怎么了性昭?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長县遣。 經(jīng)常有香客問我糜颠,道長,這世上最難降的妖魔是什么萧求? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任其兴,我火速辦了婚禮,結(jié)果婚禮上夸政,老公的妹妹穿的比我還像新娘元旬。我一直安慰自己,他們只是感情好守问,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布法绵。 她就那樣靜靜地躺著,像睡著了一般酪碘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盐茎,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天兴垦,我揣著相機與錄音,去河邊找鬼字柠。 笑死探越,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的块仆。 我是一名探鬼主播奸柬,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼豆胸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲤氢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤西潘,失蹤者是張志新(化名)和其女友劉穎卷玉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喷市,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡相种,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了品姓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寝并。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡箫措,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衬潦,到底是詐尸還是另有隱情斤蔓,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布别渔,位于F島的核電站附迷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哎媚。R本人自食惡果不足惜喇伯,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拨与。 院中可真熱鬧稻据,春花似錦、人聲如沸买喧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淤毛。三九已至今缚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間低淡,已是汗流浹背姓言。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔗蹋,地道東北人何荚。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像猪杭,于是被迫代替她去往敵國和親餐塘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理皂吮,服務(wù)發(fā)現(xiàn)戒傻,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 一涮较、使用C語言的7個步驟 1.定義程序的目標 2.設(shè)計程序 3.編寫代碼 4.編譯 5.運行程序 6.測試和調(diào)試程...
    ChinMint閱讀 152評論 0 0
  • 蘋果官方文檔翻譯 《Objective-C語言編程》(Programming with Objective-C) ...
    fever105閱讀 25,620評論 19 130
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法稠鼻,類相關(guān)的語法,內(nèi)部類的語法狂票,繼承相關(guān)的語法候齿,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 我從一個很荒涼的地方來, 手握中國的歌謠 我聽說慌盯,昔日牧羊的少年也從那里來周霉,他拋家棄子 遠方的鄉(xiāng)村成了另一個故鄉(xiāng) ...
    韓思河閱讀 323評論 0 2