private static void NmeaMessageParsed(object sender, NmeaMessage e) { var @switch = new Dictionary <Type, Action> { { typeof(GnggaMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GpggaMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GngllMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GngsaMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GpgsaMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GnrmcMessage), () => { SendMessage(e); } }, { typeof(GprmcMessage), () => { SendMessage(e); } }, { typeof(GntxtMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GnvtgMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GpvtgMessage), () => { Console.WriteLine($"{e}"); } }, { typeof(GpgsvMessage), () => { Console.WriteLine($"{e}(GPS)"); } }, { typeof(GlgsvMessage), () => { Console.WriteLine($"{e}(Glosnass)"); } }, { typeof(GbgsvMessage), () => { Console.WriteLine($"{e}(Baidoo)"); } }, }; @switch[e.GetType()](); }