Вообще, твой вопрос связан не с C#, а с программированием в целом.
Если ты хочешь написать полноценный калькулятор, с поддержкой функций, то лучше рассматривать более общий случай -
Синтаксический анализ.
Тем более, что навык построения и работы с синтаксическими деревьями может пригодиться в дальнейшем.
Общий алгоритм такой:
1) Строишь по входной строке синтаксическое дерево.
2) Рекурсивно его вычисляешь.
Что-то похожее реализовано по ссылке в комментарии
bobrovskyserg .