這套課程為C#教學(xué)視頻,課程華南理工大學(xué)教授授課,多媒體教育,授課辦法,采用英文版進(jìn)行課程教育。
C#是一種安全的、安穩(wěn)的、簡(jiǎn)略的、高雅的,由C和C++衍生出來的面向方針的編程言語。本課程向您介紹C#的基本入門常識(shí),幫助您疾速入門。
C#介紹
C#是微軟公司發(fā)布的一種面向方針的、運(yùn)轉(zhuǎn)于.NET Framework之上的高檔程序規(guī)劃言語。并定于在微軟作業(yè)開發(fā)者論壇(PDC)上登臺(tái)露臉。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包含了諸如單一承繼、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)轉(zhuǎn)的進(jìn)程。可是C#與Java有著顯著的不一樣,它學(xué)習(xí)了Delphi的一個(gè)特色,與COM(組件方針模型)是直接集成的,并且它是微軟公司 .NET windows網(wǎng)絡(luò)結(jié)構(gòu)的主角。
C#是一種安全的、安穩(wěn)的、簡(jiǎn)略的、高雅的,由C和C++衍生出來的面向方針的編程言語。它在承繼C和C++強(qiáng)壯功能的一起去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重承繼)。C#歸納了VB簡(jiǎn)略的可視化操作和C++的高運(yùn)轉(zhuǎn)功率,以其強(qiáng)壯的操作能力、高雅的語法風(fēng)格、立異的言語特性和便捷的面向組件編程的撐持成為.NET開發(fā)的首選言語。
C#與其他編程言語
目前常見的編程言語大都是指令式(Imperative)的,例如C#、Java或C++等。這些言語的特征在于,代碼里不僅表現(xiàn)了“做啥(What)”,而更多表現(xiàn)出“如何(How)完成作業(yè)”這樣的完成細(xì)節(jié),例如for循環(huán)、i += 1等,乃至這部分細(xì)節(jié)會(huì)掩蓋我們的結(jié)尾方針。在Anders看來,指令式編程通常會(huì)讓代碼變得十分冗余,更重要的是由于它供給了過于詳細(xì)的指令,這樣履行代碼的基礎(chǔ)設(shè)施(如CLR或JVM)沒有太多發(fā)揚(yáng)空間,只能老老實(shí)實(shí)地依據(jù)指令一步步地向方針行進(jìn)。例如,并行履行程序會(huì)變得十分困難,由于像“履行目的”這樣更高層次的信息現(xiàn)已丟失了。因此,編程言語的趨勢(shì)之一,便是能讓代碼包含更多的“What”,而不是“How”,這樣履行環(huán)境便能夠愈加聰明地去適應(yīng)當(dāng)前的履行需求。
學(xué)好C#優(yōu)勢(shì)
一旦你把握了.Net和C#。等于手中握了一把神器。當(dāng)然,這個(gè)把握需求很高,不是那些啥必知啊、通曉啊、面試必考的那些東西。而是一些更簡(jiǎn)略更精華的東東。
下面,以最近做的兩個(gè)項(xiàng)目來展現(xiàn)下,神器大概怎么玩。
(1)高功能開發(fā)
這個(gè)項(xiàng)目是一個(gè)對(duì)功能需求十分高十分高十分高十分高的實(shí)時(shí)視頻剖析項(xiàng)目。由于商業(yè)緣由,詳細(xì)細(xì)節(jié)不方便泄漏。本項(xiàng)目最開始的版別我是用的純C#開發(fā),由于是圖畫與視頻項(xiàng)目,我打開了unsafe,用上了指針和非保管內(nèi)存。項(xiàng)目中有一個(gè)中心算法,大部分運(yùn)轉(zhuǎn)時(shí)刻耗在這個(gè)算法上面,寫完之后,我發(fā)現(xiàn),我寫的這個(gè)C#版算法比國(guó)內(nèi)外同行用C++完成的快幾十倍。分辨率差不多的話,他們處置一幀約需求1秒左右,而我只需求幾十毫秒。
舉這個(gè)比如不是想說C#比C++快。實(shí)際上依據(jù)我這兩年對(duì)unsafe C# 指針的運(yùn)用來看,一個(gè)寫的好的非保管C#代碼,功能約是C代碼的四分之三。可為啥在實(shí)戰(zhàn)中有這么好的功能呢,C#下我們能夠?qū)﹂_發(fā)任務(wù)做如下分化:關(guān)于功能不要害的當(dāng)?shù)剡\(yùn)用保管程序,關(guān)于功能要害的當(dāng)?shù)剡\(yùn)用非保管程序,即使是運(yùn)用指針的非保管編程,C#下的開發(fā)功率也比C和C++快得多。這樣一來,我的精力全部集中于要害當(dāng)?shù)氐耐瓿闪耍揖陀蟹浅:玫男木澈透嗟臅r(shí)刻來進(jìn)行優(yōu)化,優(yōu)化的結(jié)果就是,C#版的算法反而比C/C++的快。
也就是說,理論上,C/C++比C# unsafe快30%,可是在實(shí)踐上,加上時(shí)刻和資源的束縛,反而可能是C#的代碼更快。
當(dāng)然,我這個(gè)算法的功能還不夠高,達(dá)不到實(shí)時(shí)的目的。結(jié)尾版別,中心算法用CUDA完成,外圍算法用C# unsafe完成的。
如果我在Win7下開發(fā),我不認(rèn)為我有需求C++的當(dāng)?shù)亍.?dāng)然,C仍是需求的,很多時(shí)分,要和硬件打交道。
一般搞圖畫和視頻的都用matlab或C++,或者兩個(gè)都用。其中,matlab規(guī)劃算法,C++來重寫以進(jìn)步功能。而用C# unsafe,一個(gè)頂這兩個(gè),用它來規(guī)劃算法,作業(yè)功率堪比matlab,運(yùn)轉(zhuǎn)功能堪比C++,且能夠直接上線運(yùn)轉(zhuǎn)。

郵箱
huangbenjincv@163.com

绥芬河市| 揭阳市| 南昌县| 白水县| 沛县| 德格县| 墨玉县| 田林县| 虹口区| 辽阳县| 金堂县| 岳普湖县| 呼图壁县| 钦州市| 东方市| 祁阳县| 平果县| 云霄县| 嵊泗县| 苏州市| 西吉县| 宜宾县| 黄石市| 衢州市| 鸡泽县| 元江| 阿勒泰市| 南汇区| 澄江县| 新乡县| 南通市| 沙雅县| 洛阳市| 平湖市| 任丘市| 岳池县| 明星| 比如县| 酉阳| 普宁市| 保定市|