【问题标题】:C# Static method call results in error?C#静态方法调用导致错误?
【发布时间】:2011-05-15 13:41:17
【问题描述】:

在一个 STATIC 类(我的助手类名为 AutoItX3Delcarations.cs)中,我已经封装了一个 dll,如下所示:

//AU3_API void WINAPI AU3_Send(LPCWSTR szSendText, /*[in,defaultvalue("")]*/long nMode);
        [DllImport("AutoItX3.dll", SetLastError = true, CharSet = CharSet.Auto)]
        static public extern void AU3_Send([MarshalAs(UnmanagedType.LPWStr)] string SendText, int Mode);

基本上,在静态类中创建静态方法。

现在,在我的主程序执行中,我尝试像这样执行此方法:

 AutoItX3Declarations.AU3_Send("Test Text", 1); 

哪个,由 MSDN 应该工作......?但事实并非如此!我试图在这里和谷歌上搜索大约一个小时,但看不出为什么这不起作用..我通过使用它的类作为位置调用该方法,然后使用 DLL 导入引入的函数。

我得到的错误是"....AU3_Send(string,int)' is a 'method' but is used like a 'type' " ...

但是我如何将它用作类型?我以为这就是您正确调用静态方法的方式?

请帮忙:(

【问题讨论】:

  • 请张贴代码环绕您的方法调用。

标签: c# methods static


【解决方案1】:

你确定你的方法调用在方法体内吗?如果您可以发布周围的代码,那将有所帮助。

例如,这应该可以正常编译:

static void Foo()
{
    AutoItX3Declarations.AU3_Send("Test Text", 1);
}

我建议你尝试一下,只是为了确认它确实是 是调用上下文而不是导致问题的方法声明(尽管我完全希望是这种情况)。

【讨论】:

  • 哇...我没有认为方法调用必须在方法的主体中。我只是在我的主体中测试它形成类。我将它移到我的主线程类中的一个方法中,现在可以正常编译了.... 嗯,这似乎是一个简单的错误和愚蠢.. 抱歉!
猜你喜欢
  • 2012-08-02
  • 2022-01-22
  • 2014-07-03
  • 1970-01-01
  • 2015-06-20
  • 2018-05-14
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
相关资源
最近更新 更多