Нет, вы не можете. Переменные никогда не меняют свои типы. Какие типы вы на самом деле заинтересованы? Не могли бы вы объявить переменную как некоторый общий базовый тип или интерфейс, который они оба реализуют? Если вы сможете рассказать нам больше о своей ситуации, возможно, мы сможем вам помочь.
C # - это язык статической типизации (оставляя в стороне C # 4; он вводит динамическую типизацию там, где она действительно нужна, но в первую очередь стоит понять «нормальный» способ C #) Компилятор должен знать тип переменной, чтобы можно было понять, что означает каждая ссылка на нее. Например, если вы используете
string x = "text";
int y = x.Length;
компилятор должен знать, что x
имеет тип string
, чтобы он мог проверить, что тип имеет свойство Length
, и выдать ему вызов в IL.