0

line同じクラス内の別のメソッドから次のサブスクライバーメソッドの変数にアクセスするにはどうすればよいですか。

private void portdatareceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
   string line = port.ReadExisting();
}
4

2 に答える 2

2

イベントからメソッドを呼び出してラインを渡すことができます。イベントがトリガーされたときに、必要に応じてライン上でプロセスが開始されます。

private void portdatareceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
   string line = port.ReadExisting();

   SomeMethod(line);
}

他の可能な方法は、クラススコープで行を宣言し、タイマー制御を使用してその値をプールし、イベントがトリガーされたときに適切なアクションを実行することですが、ロックも必要になる場合があります。

于 2012-10-06T16:38:22.537 に答える
1

それをクラスのフィールドにします。メソッド内のローカル変数にアクセスすることはできません。

結局のところ、クラスはデータコンテナであり、メソッドはそのデータに作用します。ローカル変数は、そのための単なるヘルパーです。クラスの状態として必要な場合は、フィールドにします。

于 2012-10-06T16:37:50.243 に答える