我在这里有这段代码:
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));
}
}
但是,我无法指定我可能拥有的任何其他参数(例如字符串消息)。
另一种可能性是将参数更改为类型 object 但随后BinaryWriter
不知道要访问什么,我每次都必须进行明确的对话。有任何想法吗?