2017-10-18 235 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