【问题标题】:external fill of parameters' function, help please [closed]参数函数的外部填充,请帮助[关闭]
【发布时间】:2014-02-03 14:39:46
【问题描述】:

我已经实现了一个需要 2 个参数(参数)的方法:第一个是 xml 文件的源(类型字符串),第二个是生成的 pdf 文件的目标路径(类型字符串) 此应用程序将被另一个应用程序使用,该应用程序将自动分配 2 个参数。 我的问题是我应该如何声明这 2 个参数,直到我可以分配外部参数?

在其他含义:我实现了一个控制台应用程序。从 cmd 调用它时,它看起来像:C:> name_of_apllication "path1" "path2"。如果被调用的方法将被“path1”和“path2”替换,我应该如何实现参数?

这是主类的代码:将使用的方法是:GeneratePDF_CTAF

static void Main(string[] args)
        {

            string input = "";
            string output =  "";

            GeneratePDF.GeneratePDF_Ctaf( ref  input, ref  output );

        }

这是错误屏幕,它是法语的,这意味着找不到文件

【问题讨论】:

  • 很难理解你在问什么。如果您希望您的函数接受两个参数,只需在参数列表中声明它们即可。
  • 我实现了一个控制台应用程序。从 cmd 调用它时,它看起来像:C:> name_of_apllication "path1" "path2"。如果被调用的方法将被“path1”和“path2”替换,我应该如何实现参数?
  • 感谢您的教程,但是 main main 方法调用了需要 2 个参数的 generatePDF_CTAF 方法
  • @user1503496 - 这是一个链接错误。你找不到DLL。它与函数参数或xml或oop无关。在 Visual Studio 中查看您的链接选项。关闭Visual Studio并重新启动,重新安装COM组件等。与“编程”无关。

标签: c# .net xml oop


【解决方案1】:

命令行参数作为字符串数组传递给Main 方法。这是您代码中的args 参数,因此您可以从那里简单地提取您需要的参数:

static int Main(string[] args)
{
    if (args.Length != 2) 
    {
        Console.Error.WriteLine("This program requires exactly 2 parameters");
        return 1; // error code
    }

    string input = args[0];
    string output = args[1];

    GeneratePDF.GeneratePDF_Ctaf(input, output);
    return 0; // no error
}

请注意,我已修改 Main 以返回 int。控制台应用程序中经常使用非零返回值向调用程序提供错误信息。我还从您的参数中删除了ref 关键字,因为it's almost never necessary to use ref parameters in .NET

【讨论】:

  • 异常外部限制哦表!它显示这个程序正好需要 2 个参数
  • @user1503496 您是否使用命令行参数执行它?如果您在 VS 中进行调试,请确保在项目属性的调试部分中设置命令行参数。 (见msdn.microsoft.com/en-us/library/2kf0yb05.aspx
  • 从 cmd 显示异常:无法加载文件 publickeytoken = null
  • @user1503496 我的猜测是您尝试将.exe 复制出来并且没有复制所有.dll 必要的文件您尝试从外部执行它目录。尝试cd-ing 进入 bin 目录(VS 构建的输出)并从那里执行它。
  • 这就是我所做的:(
【解决方案2】:

我认为使用一个你不理解的函数有一些基本的东西,所以我将举一个简短的例子——如果它不能解决你的问题,请解释为什么不能:

 void Main(string[] args)
 {
     aFunction(args[1], args[2]);

 }


 void aFunction(string arg1, string arg2)
 {
    Console.WriteLine(arg1);
    Console.WriteLine(arg2);
 }

【讨论】:

  • 异常外部限制哦表!
  • @user1503496 - 此评论毫无意义。如果您需要任何其他帮助,请显示您的完整代码和您遇到的完整错误。修改你的问题。
猜你喜欢
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 2018-05-17
相关资源
最近更新 更多