如何解决c#中的系统参数异常错误

本文关键字:系统 参数 异常 错误 何解决 解决 | 更新日期: 2023-09-27 18:03:33

我得到一个错误,因为这里声明的文件路径:

private UIImageRes onClickImage = new UIImageRes(@"..'..'Resources'check_active.png",new Rectangle());

然而,当我声明实际路径时,它可以工作,即

private UIImageRes onClickImage = new UIImageRes(@"C:'Desktop'File'Resources'check_active.png",new Rectangle());

现在,这段代码属于一个单独的项目,我将其添加到我的新项目中。我不认为把确切的文件路径放在那里是个好主意。我将不得不改变所有的文件路径在多个源代码。此外,如果我将其复制到另一个文件夹,该项目将无法工作。我该怎么办呢?

编辑:

我对c#完全陌生,在c++和java方面有一些学术经验

如何解决c#中的系统参数异常错误

方案1:

如果你想要一个固定的路径被两个项目使用,那么你可以使用INI文件来存储路径。这将有助于在不更改源代码的情况下更改路径。

解决方案2 :

使用应用程序。StartupPath .

例如:

string sRelativePath = System.IO.Path.Combine(Application.StartupPath, @"Resources'check_active.png");
private UIImageRes onClickImage = new UIImageRes(sRelativePath,new Rectangle());

应用程序。StartupPath给出了启动应用程序的可执行文件的路径,不包括可执行文件的名称。

:

假设Project1.exe位于这里:

C:'Desktop'File'Project1.exe

应用程序。StartupPath返回:

C:'Desktop'File

string sRelativePath = System.IO.Path.Combine(Application.StartupPath, @"Resources'check_active.png");

输出将是sRelativePath字符串:

C:'Desktop'File'Resources'check_active.png

实际上,当我使用c#处理图像时,我得到了这个错误。然后,我将所需的dll复制到项目的bin文件夹中,问题就解决了。例如,cudart32_55.dll是图像处理所需的dll之一。我没有包括这个dll,并试图运行代码,然后我得到了系统。参数异常。因此,请确保您放置了所有必需的dll来摆脱系统。参数异常。

这对我很有效,这就是我所经历的。我建议你试一次。