自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解VB.NET動態(tài)編碼技巧

開發(fā) 后端
這里介紹VB.NET動態(tài)編碼技巧,VB.NET動態(tài)編碼技巧并不是萬能鑰匙。當(dāng)你為開發(fā)問題找到了好的靜態(tài)解決方案時,當(dāng)然也可以使用。但是在我們所列出的情況中沒有可行的靜態(tài)方案,因此要選擇VB.NET動態(tài)編碼技巧。

VB.NET有很多值得學(xué)習(xí)的地方,這里我們主要介紹VB.NET動態(tài)編碼技巧,包括介紹Parms.OutputAssembly屬性等方面。

VB.NET動態(tài)編碼技巧

首先創(chuàng)建了一個使用VBCodeProvider的編譯器Comp。.NET版本使用的是不同的方法但是這里所講的是微軟推薦的一個新方法。

為了使用編譯器,你必須創(chuàng)建能描述應(yīng)用程序的參數(shù)。這些參數(shù)類似于VS中你創(chuàng)建的參數(shù),只是現(xiàn)在你可以對它們進行定義。該代碼一開始就將GenerateExecutable設(shè)置為True,這意味著你需要的是一個EXE文件而不是DLL.

Parms.OutputAssembly屬性包含了輸出文件的名稱。你只需要在想創(chuàng)建文件時提供這一信息即可,而不需要生成可執(zhí)行內(nèi)存了。如果你ixiang生成可執(zhí)行文件的內(nèi)存版本,可以將Parm.GenerateInMemory屬性設(shè)置為True.

使用Parm.TreatWarningsAsErrors屬性來確定如何處理警告信息。默認的設(shè)置會使其為錯誤,這意味著你的應(yīng)用程序可能無法對其進行編譯。大多數(shù)程序員使用默認設(shè)置,盡管他們開發(fā)了程序,但是在開發(fā)完成的程序中卻將其設(shè)置為False.

大多數(shù)應(yīng)用程序需要外部DLL以正常運行。當(dāng)然,你不能創(chuàng)建任意的沒有引用外部DLL的Windows表單程序。通常,你要使用Reference文件夾來完成這一任務(wù)。不過,當(dāng)你動態(tài)創(chuàng)建代碼的時候可以依賴于Parms.ReferencedAssemblies屬性。如下所示,只需添加你要的DLL即可。

現(xiàn)在,你已經(jīng)定義了項目,接下來需要為其創(chuàng)建源代碼。如前文所述,你可以依賴于一個外部文件或DOM模式。然后,該示例創(chuàng)建了代碼因此你可以看到整個過程。下面是代碼的原始形式:

  1. Imports System.Windows.Forms   
  2. Module TestAssembly  
  3. Sub Main()  
  4. MessageBox.Show("Dynamically Created Code!")  
  5. End Sub  
  6. End Module  

這個簡單的例子顯示了一個對話框。注意vbCrLf的使用。如果你不使用這一方法,那編譯器會發(fā)送給你一個錯誤信息。vbCrLf條目在該代碼中所起的作用與在程序代碼中的作用相同,只是添加的方式不一樣。

從這一點老說,你***會用Comp.CompileAsseblyFromSource()方法編譯代碼。當(dāng)使用DOM模式和文件的時候可以使用這一方法。而在所有三種情況中,編譯器用參數(shù)和源代碼創(chuàng)建了你請求的輸出。該運算的輸出出現(xiàn)在Executable中,是CompilerResults類型。

編譯的失敗次數(shù)多于程序員的預(yù)計。無論你是在哪里使用VB.NET動態(tài)編碼技巧,你必須假設(shè)會出現(xiàn)失敗的情況以及處理失敗的方案。在本例中,代碼尋找的是錯誤并在編譯失敗時將其展示在了信息框中。否則,代碼會依賴于Process.Start()方法來啟用可執(zhí)行文件。

VB.NET動態(tài)編碼技巧并不是***鑰匙。當(dāng)你為開發(fā)問題找到了好的靜態(tài)解決方案時,當(dāng)然也可以使用。但是在我們所列出的情況中沒有可行的靜態(tài)方案,因此要選擇VB.NET動態(tài)編碼技巧。大多數(shù)情況下,要用VB.NET動態(tài)編碼技巧解決以下問題:
◆用戶的環(huán)境會以不可預(yù)見的方式更改時;
◆無法控制用戶電腦的安裝;
◆用戶或應(yīng)用程序都添加了你要用控件執(zhí)行的數(shù)據(jù)要素;
◆應(yīng)用程序必須執(zhí)行很早以前的安裝任務(wù),且這些任務(wù)與電腦,環(huán)境,網(wǎng)絡(luò)或其他不確定因素聯(lián)系緊密時;
◆應(yīng)用程序要執(zhí)行了處理級別的任務(wù),且這些任務(wù)取決于機器連接或其他狀況。

顯然,還有其他一些情況能使用VB.NET動態(tài)編碼技巧。最重要的是記住但凡有不可預(yù)知的情況下要考慮使用VB.NET動態(tài)編碼技巧。通常在編碼環(huán)境中出現(xiàn)了靜態(tài)代碼無法處理的情況時,我們就可以使用VB.NET動態(tài)編碼技巧。

【編輯推薦】

  1. 淺談VB.NET線程構(gòu)造器
  2. 簡單分析VB.NET使用線程
  3. VB.NET List(T)編寫框架方法
  4. 簡單介紹VB.NET線程同步
  5. VB.NET聲明API詳細描述
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2010-01-14 10:18:24

VB.NET List

2009-06-12 19:12:24

動態(tài)代碼VB.NET

2010-01-12 18:40:22

VB.NET Form

2010-01-11 16:04:10

VB.NET使用wit

2010-01-13 17:23:36

VB.NET動態(tài)事件

2009-10-26 13:13:17

VB.NET編碼規(guī)范

2010-01-12 18:35:43

VB.NET Stru

2010-01-21 17:34:48

VB.NET Bool

2009-10-20 17:38:54

VB.NET Comp

2009-11-10 13:08:13

VB.NET編程技巧

2010-01-18 18:20:49

VB.NET使用API

2011-05-19 09:20:21

VB.NETASP.NET

2009-10-12 15:02:51

VB.NET動態(tài)控件

2009-10-22 11:28:35

VB.NET編碼規(guī)范

2009-10-14 09:27:30

VB.NET編碼算法

2010-01-19 10:12:39

VB.NET Butt

2010-01-18 18:14:37

VB.NET語言特點

2009-10-13 10:21:58

VB.NET實現(xiàn)Web

2010-01-21 10:48:18

VB.NET擴展方法

2010-01-13 09:45:53

VB.NET Arra
點贊
收藏

51CTO技術(shù)棧公眾號