Источник: Nuances of Programming Обзор Во-первых, давайте рассмотрим оба типа: String— это обычный идентификатор, который относится к типу данных .NET System.String. Также необходимо, чтобы был импортирован класс System. string— это зарезервированный дескриптор в C # и дескриптор для .NET System.String. Важными словами в этих описаниях являются идентификатор и дескриптор. Идентификатор — это понятное имя, присвоенное типу, который можно переопределить. Дескриптор — это предопределенный фиксированный идентификатор, который имеет особое значение для компилятора. Поэтому в большинстве случаев разумно ожидать, что обе версии будут ссылаться на global: System.String, и их можно будет использовать взаимозаменяемо. Доказательство этому можно увидеть в примере фрагмента кода: public static string string1 = "Created using string";
public static String string2 = "Created using String"; При компиляции на языке-посреднике обе переменные описываются одинаковым способом. IL_0000: ldstr