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

郵箱
huangbenjincv@163.com

潜江市| 丘北县| 盐津县| 庆云县| 花莲市| 夹江县| 汝南县| 修文县| 南京市| 冕宁县| 屯门区| 上饶市| 中宁县| 永和县| 大余县| 卓资县| 永川市| 商洛市| 嫩江县| 荥经县| 包头市| 巴林左旗| 沂源县| 商都县| 酒泉市| 万全县| 顺平县| 镇宁| 绥德县| 永寿县| 凤山县| 溆浦县| 三门峡市| 哈尔滨市| 汉源县| 巴彦县| 元朗区| 襄樊市| 林甸县| 迁西县| 巫溪县|