2017-10-18 70 views
0

問候大家,我是新成員,這是我第一次發佈有關此問題的問題。VB.net通過忽略錯誤構建解決方案

我需要你的幫助,告訴我如何忽略錯誤並建立解決方案。 從我的代碼中看到錯誤'BC30057',關於'太多參數'。但是我必須使用多種參數,因爲這個函數依賴於每臺計算機上的.dll文件(許多版本和變體)。

請告訴我,如果你有更好的解決方案請讓我知道。

============================================== =========================

Select Case Group 
     Case "A" 
      tmpStr = FITSCon.fn_InitDB(FITS_OPN, FITSRev) 
     Case "B" 
      tmpStr = FITSCon.fn_InitDB(FITS_Model, FITS_OPN, FITSRev, FITSName) 
     Case "C" 
      tmpStr = FITSCon.fn_InitDB(FITS_Model, FITS_OPN, FITSName) 
    End Select 

================== ================================================== ===

+0

該錯誤表示您調用的方法具有更多參數,該方法旨在接收。如果你有這個方法的源代碼(fn_InitDB?),那麼你可以爲它添加一個重載,它接收正確數量的參數。如果你沒有源代碼,那麼你不能調用該方法傳遞比期望更多的參數 – Steve

+0

你是說在不同的機器上可能在不同版本的DLL中使用不同數量的參數聲明該方法,或者你只想傳遞根據情況而變化的完整參數的子集? – jmcilhinney

+0

Hi @jmcilhinney 正如你所說,該方法用不同版本的DLL文件例如:PC1使用A1.dll和PC2使用A1.2.dll 這兩個dll具有通用方法名稱只是不同的數字參數調用方法。 – Jew

回答

1

如果代碼是針對Option Strict設置爲Off,那麼你可以分配到FITSConObject類型的變量,然後調用你的方法上的一個文件。通過Option Strict Off,允許延遲綁定,因此只要在運行時有效,就可以使用任何您想要的簽名。

如果你已經有Option Strict Off的項目(這是VS的默認,但我會建議改變這種),那麼所有你需要做的是:

Dim FITSConObject As Object = FITSCon 

Select Case Group 
    Case "A" 
     tmpStr = FITSConObject.fn_InitDB(FITS_OPN, FITSRev) 
    Case "B" 
     tmpStr = FITSConObject.fn_InitDB(FITS_Model, FITS_OPN, FITSRev, FITSName) 
    Case "C" 
     tmpStr = FITSConObject.fn_InitDB(FITS_Model, FITS_OPN, FITSName) 
End Select 

如果你有Option Strict On的項目,然後請留下評論,我將提供最佳行動方案的詳細說明,其中包括將代碼移至單獨的代碼文件中的部分班級,以便您可以打開Option Strict Off以獲得最少的代碼。

+0

非常感謝您解決我的問題。 :d – Jew