Как уже сообщали другие, один as
, за которым следует null
-тест, будет весьма эффективным.Однако я заметил, что это приложение QuickFix.QuickFix предоставляет специально созданный класс MessageCracker
, , который, я уверен, эффективно реализован, для "взлома" общих сообщений FIX в специфических объектах сообщений со строгой типизацией, которые, по-видимому, выглядят так:именно то, что вы хотите сделать. Преимущества такого подхода будут не только улучшать производительность (возможно); код будет чище (меньше проверок и приведений, а код обработки каждого сообщения будет естественным образом перемещен в соответствующий обработчик).) и более надежный в отношении недопустимых сообщений.
РЕДАКТИРОВАТЬ: взгляд на источник MessageCracker
, предложенный Джоном Цвинком, заставляет задуматься о том, что использование этого класса, вероятно, приведет к повышению производительности.
Пример: (заставить ваш класс наследовать от MessageCracker
)
public void OnMessageReceived(QuickFix42.Message message, SessionID sessionID)
{
crack (message, sessionID);
}
public override void onMessage(QuickFix42.ExecutionReport message, SessionID sessionID)
{
...
}
public override void onMessage(QuickFix42.OrderCancelReject message, SessionID sessionID)
{
...
}