Baz türünde bir parametre alan ve gerçek parametre türüne bağlı olarak bir miktar ön işleme gerçekleştiren bir yöntem var. İşte
benim kodudur:Birden çok kez dökümden kaçınmak
public void OnMessageReceived(QuickFix42.Message message)
{
if (message is QuickFix42.ExecutionReport)
{
ProcessExecutionReport(message as QuickFix42.ExecutionReport);
}
else if (message is QuickFix42.AllocationACK)
{
ProcessAllocationAck(message as QuickFix42.AllocationACK);
}
else if (message is QuickFix42.OrderCancelReject)
{
ProcessOrderCancelReject(message as QuickFix42.OrderCancelReject);
}
// ...
}
Her şey çalışıyor, ama Visual Studio aşağıdaki uyarıyı alıyorum:
Warning 760 CA1800 : Microsoft.Performance : 'message', a parameter, is cast to type 'ExecutionReport' multiple times in method 'MessageProcessor.OnMessageReceived(Message)'. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant isint instruction.
bu gereksiz atmalarını önlemek için en iyi yolu nedir?
Böyle yaparak,/else-ifadeleri ayırmak için değiştirdiyseniz çok fazla gereksiz dökümün yapılmasıyla sonuçlanabilir. Orijinal yapıyı koruyan, biraz değiştirilmiş bir versiyon yayınladım. –