-1

私はここにこのコードを持っています:

public void SendID(int id)
{
    try
    {
        binaryWriter.Write((int)Command.ID);

        // part differening each time
        binaryWriter.Write(id);
        // end of part differing each time
    }
    catch (Exception ex)
    {
        if (Error != null)
            Error(this, new ErrorEventArgs(ex));
    }
}

try/catch & Write(Command) はこれらの各メソッドで常に等しいため、この関数を一般化したいと思います。今、これを行う最も効率的な方法は何だろうと思っています。

基本的に、私は次のような方法を考えました:

public void SendCommand(Command cmd, Action<BinaryWriter> action)
{
    try
    {
        binaryWriter.Write((int)Command.ID);
    }
    catch (Exception ex)
    {
        if (Error != null)
            Error(this, new ErrorEventArgs(ex));
    }
}

ただし、他のパラメーター (文字列メッセージなど) を指定することはできませんでした。

もう 1 つの可能性は、パラメーターをオブジェクト型に変更することですが、BinaryWriter何にアクセスすればよいかわからず、毎回明示的な会話を行う必要があります。何か案は?

4

1 に答える 1