freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]c編程技巧(編輯修改稿)

2024-09-14 16:27 本頁面
 

【文章內(nèi)容簡介】 集合中。在 .Net SDK 文檔中,我們可以查詢到一個(gè)所有編譯開關(guān)的完整列表。    要想正確地編譯 C 頁面中, 集合。這可以通過使用 /r 開關(guān)并在后面加上到集合的完整路徑來完成。由于將要創(chuàng)建的 dll是一個(gè)庫,因此就必須指定 /t開關(guān),這樣編譯器就不再尋找一個(gè)靜態(tài)的 Main() 方法。最后一個(gè)需要的開關(guān)是 /out ,它將告訴編譯器輸出的文件名是什么,以及將其放在哪里。    所有對 C 編譯器的調(diào)用都以 csc (C 編譯器)開始,然后指定適當(dāng)?shù)拈_關(guān)。編譯器語法的最后一部分包括到已創(chuàng)建的 .cs 文件的路徑。請看下面的編譯文件的完整語法格式:    C:\csc /r: /    t:library /out:d:\inetpub\root\    xml\bin\ d:\inetpub\    root\xml\menus\    這行命令告訴編譯器包含 集合、將文件作為一個(gè)庫進(jìn)行編譯、將文件輸出到 bin目錄中、。當(dāng)輸入回車鍵后,.cs文件就進(jìn)行編譯,生成的 dll將被放置在適當(dāng)?shù)奈募A中。   結(jié)束語    本文通過講解一個(gè)應(yīng)用程序的思路及實(shí)現(xiàn)代碼,使我們對于使用Microsoft .Net平臺中的一些集合和類有了一個(gè)很好的了解。隨著進(jìn)一步的學(xué)習(xí),我們將看到,還會有其它一些集合和類可以以多種方式與本地和遠(yuǎn)程XML文檔一起工作。 Tags: dotnet技術(shù) , c開發(fā)技術(shù) C語言函數(shù)參數(shù)的傳遞 DotNet技術(shù) | 閱讀(118) | 評論(0) Oct282005[此文來源于互聯(lián)網(wǎng),牛C網(wǎng)只負(fù)責(zé)收集整理]  就像C語言眾多的后世子孫一樣,C的函數(shù)參數(shù)是非常講究的。首先,參數(shù)必須寫在函數(shù)名后面的括號里,這里我們有必要稱其為形參。參數(shù)必須有一個(gè)參數(shù)名稱和明確的類型聲明。該參數(shù)名稱只在函數(shù)體內(nèi)部可見。因此在該函數(shù)體以外的任何地方使用同樣的變量名是不會引起沖突的。每當(dāng)調(diào)用函數(shù)的時(shí)候,必須將一個(gè)實(shí)參傳遞給函數(shù)定義中的形參。默認(rèn)情況下,C的參數(shù)傳遞是值傳遞。這種方式的優(yōu)點(diǎn)和缺點(diǎn)同樣明顯。另外,在傳送引用類型的時(shí)候還時(shí)不時(shí)引起一些小誤會。更加使人困惑的是,既然CLR不支持指針類型,那么我們以前在C/C 中的那些關(guān)于指針傳遞的妙用應(yīng)該如何實(shí)現(xiàn)呢?不必發(fā)愁,本文將會逐一回答上述這些疑問。首先我們會討論默認(rèn)情況下的值傳遞以及這種方式的優(yōu)缺點(diǎn),解釋默認(rèn)情況下傳遞引用類型時(shí)容易產(chǎn)生的誤解。然后,我們討論如何利用ref關(guān)鍵字把一個(gè)值類型作為引用類型傳遞給參數(shù)。最后,我們嘗試著讓一個(gè)函數(shù)可以返回多個(gè)值,在C/C 中我們經(jīng)常利用指針達(dá)到這一目的,這里我們將會利用out關(guān)鍵字重溫這種美妙的感覺?! ≈祩鬟f  每當(dāng)調(diào)用一個(gè)函數(shù)的時(shí)候,我們就必須為該函數(shù)的每一個(gè)形參傳遞一個(gè)實(shí)參。默認(rèn)情況下,采用值傳遞的機(jī)制。也就是說,實(shí)參的值會被拷貝到形參里面,這樣我們在函數(shù)內(nèi)部得到一個(gè)本地變量,該變量的值和傳遞進(jìn)來的那個(gè)實(shí)參的值相等,但是它們存放在不同的存儲空間。因此,我們對函數(shù)參數(shù)所做的一切實(shí)際上都是對函數(shù)提內(nèi)本地變量的操作,絕對不會影響到作為實(shí)際參數(shù)傳遞過來的那個(gè)函數(shù)體外的變量??聪旅娴睦樱揖筒辉俣噘M(fèi)口舌了。using System。namespace CS語言函數(shù)參數(shù)的傳遞{ /// summary /// Class1 的摘要說明。 /// /summary class Example { static void Main(string[] args) { int argument = 5。 Example exp = new Example()。 (argument)。 (argument)。 (argument)。 } public Example() { } public void fun1(int parameter) { //對parameter的操作實(shí)際上是對本地變量的修改 //不會影響到函數(shù)體外作為實(shí)參傳遞過來的變量 parameter = 5。 (parameter)。 } }}  但是值傳遞的機(jī)制有一個(gè)明顯的缺點(diǎn)。主要表現(xiàn)在值類型的傳遞方面。我們對參數(shù)的修改會在函數(shù)體執(zhí)行結(jié)束之際消失。如果我們希望將這種變化影響到作為實(shí)參傳遞過來的那個(gè)函數(shù)體以外的變量就必須把值類型作為引用類型傳遞。后邊會具體討論。值傳遞機(jī)制的另一個(gè)缺點(diǎn),或許你會認(rèn)為這是一個(gè)優(yōu)點(diǎn),表現(xiàn)在引用類型的傳遞方面。按照值傳遞的機(jī)制傳遞一個(gè)引用類型的變量,實(shí)際上只是完成了一次淺拷貝。請不要誤認(rèn)為對整個(gè)對象進(jìn)行了深拷貝。函數(shù)參數(shù)得到的只是實(shí)參的handle的值。也就是說,本地的參數(shù)實(shí)際上只是一個(gè)引用類型的handle,和作為實(shí)參傳遞過來的那個(gè)變量的handle具有相同的值,指向同一個(gè)object(兩個(gè)handle指向堆上的相同位置)。這樣我們在函數(shù)內(nèi)部對參數(shù)所做的修改會直接影響到堆上的object。當(dāng)函數(shù)結(jié)束之后,本地的參數(shù)消失,而對于堆上的object的修改會成為持久的修改而繼續(xù)保留下來?! “阎殿愋妥鳛橐妙愋蛡鬟f  有一些時(shí)候,我們不惜望函數(shù)對于參數(shù)的修改隨著函數(shù)的結(jié)束而消失。作為引用類型,作到這一點(diǎn)其實(shí)一點(diǎn)都不難,就像我們上面說的那樣。但是,如果是值類型的參數(shù),似乎就有一點(diǎn)麻煩了。從前在C/C 里面可以采取傳遞指針的方法來達(dá)到這個(gè)目的。但是CLR已經(jīng)明確取消了指針。作為補(bǔ)償,C為我們提供了ref關(guān)鍵字。ref關(guān)鍵字通知編譯器,參數(shù)的實(shí)參是作為引用類型而非值類型進(jìn)行傳遞。下面的這段程序幫助我們說明問題。using System。namespace CS語言函數(shù)參數(shù)的傳遞{ class Example { static void Main(string[] args) { int argument = 5。 Example exp = new Example()。 //首先顯示argument (argument)。 (ref argument)。//傳遞參數(shù)時(shí)必須使用ref關(guān)鍵字 (argument)。 ()。 } public void fun1(int parameter) { //對parameter的操作實(shí)際上是對本地變量的修改 //不會影響到函數(shù)體外作為實(shí)參傳遞過來的變量 parameter = 5。 (parameter)。 } public void fun2(ref int parameter) { parameter = 5。 (parameter)。 } }}  函數(shù)fun2要求一個(gè)int類型的參數(shù),并且伴有關(guān)鍵字ref。在Main()函數(shù)內(nèi)定義了一個(gè)整形變量argument,它將會作為實(shí)參傳遞給函數(shù)fun2()。在調(diào)用該函數(shù)之前,首先顯示了變量argument,其值等于5。緊接著調(diào)用函數(shù)fun2(),并且傳遞argument給參數(shù)parameter。這時(shí)函數(shù)得到的是一個(gè)本地的,指向整形變量argument的handle。在函數(shù)內(nèi)部,把parameter加5,然后顯示它。這時(shí)其值為10。函數(shù)返回后再一次顯示argument,其值同樣為10?! ∽尯瘮?shù)返回多個(gè)返回值  有些時(shí)候我們可能會希望一個(gè)函數(shù)可以返回多個(gè)返回值。事實(shí)上,這是不可能的因?yàn)橐粋€(gè)函數(shù)只能返回一個(gè)返回值。但是我們確實(shí)辦法達(dá)到這種效果。最簡單的是下面這種方法。public int fun3(ref int i, int j) { i = j。 return i j。 }  我們這樣調(diào)用這個(gè)函數(shù)。int i。 int sum = (ref i, 10)。 (i)。 (sum)。  這樣在執(zhí)行過函數(shù)fun3()之后,我們實(shí)際上得到了i的值和i j的值。實(shí)際上起到了利用一個(gè)函數(shù)返回兩個(gè)值的作用。另外有一個(gè)關(guān)鍵字也是非常重要的。那就是out關(guān)鍵字。該關(guān)鍵字允許向參數(shù)傳遞一個(gè)沒有分配空間的引用類型。利用這個(gè)關(guān)鍵字同樣可以達(dá)到返回多個(gè)值的目的。public void fun4(ref int i, out object obj) { i =5。 obj = ()。 (i)。 (obj)。 }  上面這個(gè)方法要求兩個(gè)參數(shù)。第二個(gè)參數(shù)要求一個(gè)object類型的變量。該參數(shù)前面有一個(gè)out關(guān)鍵字。編譯器會認(rèn)為該參數(shù)的實(shí)參沒有被分配存儲空間。Out參數(shù)在未被賦值之前不能使用??梢赃@樣調(diào)用該函數(shù):int i = 5。 object obj。 (ref i, out obj)。 (i)。 (obj)?! ≥敵鰹?個(gè)10。說明我們在調(diào)用該函數(shù)之后得到了變量i和obj兩個(gè)變量的值。 Tags: dotnet技術(shù) , c開發(fā)技術(shù) 使用C語言操作ADO數(shù)據(jù)庫 DotNet技術(shù) | 閱讀(125) | 評論(0) Oct282005[此文來源于互聯(lián)網(wǎng),牛C網(wǎng)只負(fù)責(zé)收集整理]  訪問數(shù)據(jù)庫是大多數(shù)應(yīng)用程序的一部分,而且隨著C,:  ,字符串和日期等不同的數(shù)據(jù)類型.  .  .  .  這些操作是對一個(gè)微軟Access 2000數(shù)據(jù)庫進(jìn)行的,但是SQL或是其它ADO數(shù)據(jù)源可以通過簡單的改變連接字符串來使用.  開始第一步  為了使用ADO類,(namespace).using 。 // 申明變量using 。 // 數(shù)據(jù)庫using 。 // 日期  根據(jù)你所參與的工程的類型,你可以: explorerReferences 分支中右鍵單擊.添加引用 Framework標(biāo)簽. explorer的引用列表中了.  因?yàn)檫B接字符串在大多數(shù)操作中都要使用,:在你的程序中,數(shù)據(jù)庫文件的路徑有可能不同.//屬性public const string DB_CONN_STRING = Driver={Microsoft Access Driver (*.mdb)}。 DBQ=D:\\CS\\TestDbReadWrite\\?! ∽x數(shù)據(jù)  .(參看Chris Maunder的文章 ADODataReader類來獲取關(guān)于這個(gè)類的更多信息.)讀數(shù)據(jù)的步驟如下:  .ADOConnection conn = new ADOConnection(DB_CONN_STRING)。()。    中意味著通過引用傳遞參數(shù).ADODataReader dr。ADOCommand cmd = new ADOCommand( SELECT * FROM Person, conn )。( out dr)?! ?數(shù)據(jù)被直接作為一個(gè)字符串返回同時(shí)數(shù)據(jù)域名稱用來指明讀的數(shù)據(jù)域.while( () ){( dr[FirstName] )。}     但是,作為好的程序員我們還需要加進(jìn)許多try/catch/finally語句來確保我們處理了所有的錯(cuò)誤.try{.... 數(shù)據(jù)庫操作 ...}catch( Exception ex ){( READING: )。( ERROR: )。( SQL : sSqlCmd )。( Conn.:amp。quot。 DB_CONN_STRING )。}finally{// 關(guān)閉連接if( == )()。}  讀取不同的數(shù)據(jù)類型dr[stuff]:int nOrdinalAge = ( Age )。int nAge = ( nOrdinalAge )。DateTime tUpdated = (DateTime)dr[Updated]?! ?還沒有填入任何數(shù)據(jù)),我們可以用IsNull方法檢查是否有數(shù)據(jù)存在,如下所示:int nOrdinalAge = ( Age )。if( ( nOrdinalAge ) ){(
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1