C# 编程飞利浦色调时出现编译错误[CS0103]错误

C# 编程飞利浦色调时出现编译错误[CS0103]错误,c#,philips-hue,C#,Philips Hue,我正试图编程一个飞利浦色相灯泡,但我甚至不能发送一个命令的灯。我正在用Q42.HueApi用C#编程 这是我在WinForms应用程序中按下按钮时打开指示灯的方式: namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); IBridgeLocato

我正试图编程一个飞利浦色相灯泡,但我甚至不能发送一个命令的灯。我正在用Q42.HueApi用C#编程

这是我在WinForms应用程序中按下按钮时打开指示灯的方式:

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            IBridgeLocator locator = new HttpBridgeLocator();
            ILocalHueClient client = new LocalHueClient("10.1.1.150");

            string AppKey = "myappkey";
            client.Initialize(AppKey);
        }

        void commandCreation(object sender, EventArgs e)
        {
        var command = new LightCommand();
        command.On = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ILocalHueClient.SendCommandAsync(command);
        }
    }
}
但在最后一行,我得到了编译器错误。

请参阅代码中的注释

void commandCreation(object sender, EventArgs e)
{
    var command = new LightCommand(); //  <== because you declare it HERE
    command.On = true;
}

private void button1_Click(object sender, EventArgs e)
{
        ILocalHueClient.SendCommandAsync(command); // ^^ command is out of scope HERE.
}
“SendCommandAsync”提示它是一种异步方法。因此,您可能需要等待:

    private async void button1_Click(object sender, EventArgs e)
    {
        // assuming command is a field ...
        await client.SendCommandAsync(command);
    }

编辑:

实际上是

public Task<HueResults> SendCommandAsync(
              LightCommand command, 
              IEnumerable<string> lightList = null)
公共任务SendCommandAsync(
灯光指挥部,
IEnumerable lightList=null)

因此,您甚至可以查看HueResults,例如,查看您的命令是否成功。

请使您的标题更能描述您面临的实际问题。并包含实际的错误消息,而不仅仅是错误代码。不是所有人都能记住密码,信不信由你;我们大多数人不记忆错误代码。请发布实际错误。您也需要共享错误消息。@cxes在我看来,似乎命令未在按钮1中声明。\u单击
命令
未在
按钮1中定义。\u单击
您遗漏了部分命令<代码>ILocalHueClient是一种类型,而不是类型的实例。可能需要通过客户端实例移动call
SendCommandAsync
。这意味着客户端需要是一个字段。正如@mason所说的
ILocalHueClient
是一个类型而不是一个实例,将其更改为
client.SendCommandAsync(command)谢谢你们的快速帮助@mason我还怀疑它可能是一个TAP方法(异步任务),从命名“SendCommandAsync”推断出来。
public Task<HueResults> SendCommandAsync(
              LightCommand command, 
              IEnumerable<string> lightList = null)