Если заранее неизвестно к какому типу будет принадлежать переменная, в C# есть выход — ключевое слово var.
var num = 15; // сделает num integer var num = "dabba"; // сделает num string var num; num = 15; // выведет ошибку, при использовании var надо сразу присваивать переменной значение