если мы в методе Main напишем B b = new B();, то у нас сначала вызовется статический конструктор в классе B, потом статический конструктор в классе A, потом динамический конструктор в классе A, и динамический конструктор класса В.а над статикой не заморачивайтесь вообще, пока хорошенько не поймете что это такое. это не очень понятно на начальных этапах изучения, и это точно не надо учитывать, пока не дойдете до необходимости создания собственных переопределений статических конструкторов
if (choise == 1) {
res = Function1(a, b);
}
else if (choise == 2) {
res = Function2(a, b);
}
else if (choise == 3) {
res = Function3(a, b);
}
else if (choise == 4) {
res = Function4(a, b);
}