line
同じクラス内の別のメソッドから次のサブスクライバーメソッドの変数にアクセスするにはどうすればよいですか。
private void portdatareceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string line = port.ReadExisting();
}
line
同じクラス内の別のメソッドから次のサブスクライバーメソッドの変数にアクセスするにはどうすればよいですか。
private void portdatareceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string line = port.ReadExisting();
}
イベントからメソッドを呼び出してラインを渡すことができます。イベントがトリガーされたときに、必要に応じてライン上でプロセスが開始されます。
private void portdatareceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string line = port.ReadExisting();
SomeMethod(line);
}
他の可能な方法は、クラススコープで行を宣言し、タイマー制御を使用してその値をプールし、イベントがトリガーされたときに適切なアクションを実行することですが、ロックも必要になる場合があります。
それをクラスのフィールドにします。メソッド内のローカル変数にアクセスすることはできません。
結局のところ、クラスはデータコンテナであり、メソッドはそのデータに作用します。ローカル変数は、そのための単なるヘルパーです。クラスの状態として必要な場合は、フィールドにします。