0

SerialPort_DataReceivedプロジェクトでイベントを使用しています。しかし、 this の本体内でデータを受信するさまざまな戦略が必要ですevent

私はグーグルで検索しましたが、1つの方法は Func<> をメソッドに挿入し、その動作を変更することであることがわかりました(戦略パターン)。

しかし、次のような evnet に対して同じことを行うことは可能SerialPort_DataReceivedですか? はいの場合、どうすればそれを行うことができますか? (原則に違反しないこと)

編集:

Func<>実際には、次のようにパラメータを追加したいSerialPort_DataReceived

public Rs232(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits)
        {
            SerialPort = new SerialPort(portName, baudRate, parity, dataBits, stopBits);
            SerialPort.DataReceived += SerialPort_DataReceived;
        }

        private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            throw new NotImplementedException();
        }

私は次のように変更したいSerialPort_DataReceived

private void SerialPort_DataReceived(Func<sth,sth> Strategy,object sender, SerialDataReceivedEventArgs e)
            {
                throw new NotImplementedException();
            }
4

2 に答える 2

0

確かに、DataReceived イベント ハンドラーを含むクラスに Func<> を挿入し、ハンドラーから Func<> を呼び出すことができます。

また、生バイトのデコードに応じてデータを処理するために、1 つ以上の Func<> を持つ特定のハンドラー クラスに受信データを配信することもできます。

于 2013-06-13T15:31:54.207 に答える