根据什么queue
是,你可以改变的签名Peek()
,并Peek(bool)
到Peek(bool?)
?(其他方法也应该遵循.)
那样,而不是:
if (UseTimeout) { Message = queue.Peek(Timeout); } else { Message = queue.Peek(); }
你可以有:
Message = queue.Peek(UseTimeout ? Timeout : null);
另一个想法是你可以将决策结构推送到队列类:
if(UseTimeout) Message = queue.PerformAction(ReadDecision, Timeout) else Message = queue.PerformAction(ReadDecision)