私はここにこのコードを持っています:
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
何にアクセスすればよいかわからず、毎回明示的な会話を行う必要があります。何か案は?