Passar um método como um argumento

Como faço para passar um método como argumento? Eu faço isso o tempo todo em JavaScript e preciso usar métodos anônimos para passar parâmetros. Como faço isso em c #?

protected void MyMethod(){
    RunMethod(ParamMethod("World"));
}

protected void RunMethod(ArgMethod){
    MessageBox.Show(ArgMethod());
}

protected String ParamMethod(String sWho){
    return "Hello " + sWho;
}

questionAnswers(5)

yourAnswerToTheQuestion