Ve lo que te puse en el otro post sobre los diccionarios, ahí tienes la respuesta de que es lo que debes de hacer, tan sólo crea un variable donde puedas tener guardado el último comando que acabas de enviar.
Si quieres tener funciones separadas para cada caso, te serviría algo parecido a esto.
Código PHP:
IDictionary<string,Func<string,string[]>> commands = new Dictionary<string,Func<string,string[]>>();
Después añades cada uno de tus comandos de la siguiente forma
Código PHP:
commands.Add("B\r",funcion_que_trata_el_caso_de_B);
commands.Add("X72\r",funcion_que_trata_elcaso_de_X72);
Entonces, dentro de tu función si_DataReceived simplemente colocas algo como
Código PHP:
private void si_DataReceived(string accion)
{
commands[current_command](accion);
}