2016-07-18 9 views
0

private voidからStringクラスへの通信に問題があります。コードは以下の通りである:上記のコードではprivate voidからStringクラスへのbooleanを取得

public partial class mainForm : Form 
{ 
    bool host = false; 
    string HostName = ""; 
    string HostName1 = "192.168.0.30"; 
    string HostName2 = "192.168.0.31"; 

    String SendCommand(String Command) 
    { 
    if (host == false) 
     HostName = HostName1; 
    else if (host == true) 
     HostName = HostName2; 
    //code that uses Hostname to toggle switch, which does work 
    } 

    private void btnProgramEther_Click_1(object sender, EventArgs e) 
    { 
    host = true; 
    SendCommand("turn switch on"); 
    } 
} 

、文字列SendCommand(文字列コマンド)で変更していない真にホストを設定します。私がこれをすると...

String SendCommand(String Command) 
    { 
    host = true; 
    if (host == false) 
     HostName = HostName1; 
    else if (host == true) 
     HostName = HostName2; 
    //code that uses Hostname to toggle switch, which does work 
    } 

...変更を見て、うまく動作します。私はボタンをpublic voidに変更しようとしましたが、Stringクラスはpublic String SendCommandに変更されましたが、それはうまくいきませんでした。私はまた、文字列クラスの前にボタンのクリックコードを置くが、それも動作しませんでした。私はSendCommand( "turn switch on")から何をすべきか分かりません。ブール値の変更が表示されないため、HostName1ではスイッチをオンにしますが、HostName2ではオンにしません。 ありがとうございます。

+2

デバッガを使用して、 'btnProgramEther_Click_1'にブレークポイントを設定し、' SendCommand'を呼び出します。 –

+2

あなたが提示したコードでは、あなたが提示していることはできません。私は誰もこの振る舞いを再現できないと思っています([this fiddle](https://dotnetfiddle.net/jVqE8k)を参照)。例 - それは動作します!)。 [mcve]を作成できますか? –

+0

@CharlesMager問題は、2つのリレーボードをコンピュータに接続して、リレーをオン/オフするためにC#を使用していることです。そのため、2つの異なるIPアドレスがあります。私はブーリアンホストを使用して、どのボードと通信しているかを切り替えています。 – Canucksctr7

答えて

1

SendCommand()メソッドにホスト名を渡すだけではどうですか?

public partial class mainForm : Form 
{ 
    private const string HOST_1 = "192.168.0.30"; 
    private const string HOST_2 = "192.168.0.31"; 

    private string SendCommand(string host, string Command) 
    { 
     //code that uses Hostname to toggle switch, which does work 
     // Just use host here 
    } 

    private void btnProgramEther_Click_1(object sender, EventArgs e) 
    { 
     SendCommand(HOST_1, "turn switch on"); 
    } 
} 
関連する問題