【发布时间】:2012-12-22 20:48:48
【问题描述】:
我这里有这段代码:
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 不知道要访问什么,我每次都必须进行明确的对话。有什么想法吗?
【问题讨论】:
标签: c# delegates action binarywriter