【问题标题】:C# Non-invocable member cannot be used like a methodC#不可调用成员不能像方法一样使用
【发布时间】:2015-08-13 16:40:02
【问题描述】:

编辑:对于其他可能有帮助的人。我在这里做错了一些事情,有些纯粹是出于懒惰。

  1. 我没有引用正确的方法。 selectDeviceButton_Click 是我的意思,这是一个愚蠢的错字。

  2. 该方法的访问修饰符应设置为公共而不是私有。

  3. 我在方法中有两个参数,但我无法满足。

仔细阅读 StackOverflow 中的“类似”问题尚未产生任何有用的信息。所以我发布了我自己的代码和一系列问题。

我要做的是:一个 WPF 窗口有一个当前系统上的音频设备列表供您选择(检查),选择一个并按下“选择”按钮 - 所选设备的索引被送到另一个班级(这是我需要帮助的。)

我尝试通过让我的事件返回设备号或“设备索引”来发送它。此代码 sn-p 用于我的“设备选择”窗口:

private int selectDeviceButton_Click(object sender, RoutedEventArgs e)
    {
       //Gets the index of the selected item and stores it inside the deviceNumber field.
        int deviceNumber = sourceList.SelectedItems.IndexOf(sourceList.SelectedItem);

       //Hide this window. 
        Hide();

        return deviceNumber;
    }

到目前为止一切顺利。现在继续我的其他课程,我尝试获取返回的整数。

 private void recordButton_Click(object sender, RoutedEventArgs e)
    {

        MainWindow mw = new MainWindow();
        int devNumb = mw.selectDeviceButton();

    }

这个类继承自另一个窗口。我收到标题中显示的错误消息。想知道为什么?

【问题讨论】:

  • 您已经声明了一个名为 selectDeviceButton_Click 的方法,但您似乎正在尝试调用 selectDeviceButton... 哦,您也没有为该方法提供任何参数,该方法有两个参数。
  • 补充约翰所说的话。我 99.99% 确定您不打算创建一个新的 MainWindow,而您实际上想使用现有的 MainWindow 并希望从中获得价值。
  • 我考虑了你们所说的一切,因此代码如下所示: MainWindow mw = new MainWindow(); int devNumb = mw.selectDeviceButton_Click();现在没有错误:)

标签: c# wpf methods int


【解决方案1】:

您正在尝试调用实际上不是方法的东西。 selectDeviceButton 不是一种方法,但您试图调用它,就好像它是一种方法一样。你还没有展示它是什么,但从名字来看,它可能是一个按钮。

【讨论】:

  • 它是一个按钮。嗯。我以为这是订阅者方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 2013-07-07
  • 1970-01-01
  • 2017-04-11
  • 2016-05-01
  • 2016-04-11
  • 2018-05-31
相关资源
最近更新 更多