您好,登錄后才能下訂單哦!
這篇文章主要講解了“C#編譯過程的特點(diǎn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#編譯過程的特點(diǎn)”吧!
C#編譯過程開始前要安裝好.NET Framwork SDK環(huán)境,一般安裝了vs.net工具的 都已經(jīng)可以了,我們這里使用vs2005:在圖中 可以看到我們進(jìn)入vs2005的命令行窗體
首先,我們用文本文件建一個(gè).cs的文件 其實(shí)在C#編譯過程中這個(gè)擴(kuò)展名是可以自己定的,另不用.cs也是可以的,建一個(gè)文件命名為:SimpleProgram.cs 輸入下面的代碼
usingSystem; publicclassSimpleProgram { staticvoidMain() { Console.WriteLine(“Hello”); Console.ReadLine(); } }
保存,注意一下大小寫,然后在命令行窗口里輸入:csc SimpleProgram.cs,當(dāng)然我們要首先進(jìn)入文件所在目錄 如果編譯通過,在同一個(gè)文件夾里會出現(xiàn)一個(gè)SimpleProgram.exe,運(yùn)行 就可以看到一個(gè)控制臺程序 打印出Hello.
接著我們講編譯多個(gè)源文件
編譯多個(gè)源文件有幾種方面:1.把所有的源文件編譯成一個(gè)exe文件 2.把一些文件編譯成dll,一些編譯成exe 然后作為一個(gè)應(yīng)用程序一起使用。
先說***個(gè)方法:做兩個(gè).cs文件
Program2.cs
usingSystem publicclassProgram2 { staticvoidMain() { Personp=newPerson(“dotLive”); Console.WriteLine(“Ourperson’ snameis“+p.Name); } }
Person.cs
usingSystem; publicclassPerson { privatestringname; publicPerson(strings) { name=s; } publicstringName { get{ returnname; } set { name=value; } } }
保存,命令行窗口中進(jìn)入文件目錄 輸入:csc Program2.cs Person.cs 這個(gè)時(shí)候會在目錄里生成一個(gè)exe文件,文件的名稱跟***個(gè).cs的文件名相同,如果.cs文件很多的話 還有一個(gè)簡單的寫法:csc *.cs 就可以把當(dāng)前目錄里的所有.cs文件進(jìn)行編譯。
現(xiàn)在說一下第二種方法,還是使用上面兩個(gè).cs文件
首先輸入 csc /t:library Person.cs命令 這時(shí)候會生成一個(gè)Person.dll文件,然后第二步輸入命令 csc Program2.cs /r:Person.dll 這樣就可以生成一個(gè)引用Person.dll的exe文件Program2.exe文件。
這里出現(xiàn)了兩個(gè)參數(shù) /t 和 /r
/t 是指定編譯生成dll還是exe,在***種方法中的命令csc *.cs 其實(shí)是一個(gè)簡寫,完整的寫法是csc /t:exe *.cs,由于/t:exe是默認(rèn)的選項(xiàng)可以不寫, 還要說一句 這里的exe文件都是控制臺應(yīng)用程序(其他的以后再說)
/r 的作用可以看成是引用了一個(gè)dll文件,格式可以寫成csc program.cs /r:1.dll;2.dll;3.dll
掛接多個(gè)dll,每個(gè)dll之間用分號 隔開。
接著我們再講一個(gè)參數(shù) /out 這個(gè)是給可執(zhí)行文件命名的 比如:csc /out:MyApp.exe Program2.cs Person.cs 這樣就可以生成一個(gè)叫做MyApp.exe的可執(zhí)行文件。
在C#編譯過程中如果有多個(gè).cs文件中存在Main函數(shù) 要怎么辦?
首先我們在Person.cs文件的Person類里添加一個(gè)Main函數(shù)
usingSystem; publicclassPerson { privatestringname; publicPerson(strings) { name=s; } publicstringName { get{ returnname; } set { name=value; } } //新增加一個(gè)Main函數(shù) staticvoidMain() { Personp=newPerson(“dotLive2”); Console.WriteLine(“Ourperson’ snameis“+p.Name); } }
這樣一來如果按照原來的方法同時(shí)將兩個(gè)文件編譯進(jìn)同一個(gè)exe時(shí),便以一定會出錯
這時(shí)候我們再引入一個(gè)新的參數(shù) /main
在我們自己決定要使用哪個(gè)cs文件里的Main函數(shù)時(shí) 可以輸入命令
csc Program2.cs Person.cs /main Program2
就是制定了以Program2里的Main函數(shù)為程序入口點(diǎn)了。
感謝各位的閱讀,以上就是“C#編譯過程的特點(diǎn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C#編譯過程的特點(diǎn)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。