【问题标题】:Syntax Error when invoking method from dll using "out" arguments [duplicate]使用“out”参数从dll调用方法时出现语法错误[重复]
【发布时间】:2017-07-18 13:45:44
【问题描述】:

我正在尝试从代码中获取的 dll 调用方法。
要调用的外部方法:

private bool someMethod(out string errMsg)
    {
      //Error message is assigned
      //Some more code
      return aBoolean;
    }

当我使用以下代码调用方法时:

string errorMessage;  
someMethod.Invoke(activator, new object[] {out errorMessage});  

“out errorMessage”出现以下错误:
语法错误,预期为 ',' -- 预期为 ',' 或 '}'

当我忽略out前缀时,方法本身被正确调用,并且根据我所做的测试正确分配了激活器

这是怎么回事?

【问题讨论】:

  • 目标框架是 4.0。我试过 4.5,没有骰子。

标签: c# dll syntax-error invoke out


【解决方案1】:

原因

string errorMessage;  
someMethod.Invoke(activator, new object[] {out errorMessage});  

不会编译是双重的。

  1. out 必须针对参数指定,而不是针对碰巧用于初始化参数的变量。
  2. Invoke 方法不带 out 参数。

This 可以用来解决您的问题,而不是尝试使用out

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多