В C # взаимозаменяемы ли термины «примитив» и «буквальный»?

Сегодняшняя дискуссия привела меня к вопросу о правильности моего понимания примитивов и литералов.

Насколько я понимаю, литеральный тип - это, в частности, тип, который может иметь значение, назначенное с использованием нотации, которую могут понять и человек, и компилятор без определенных объявлений типов:

var firstName = "John"; // "John" is literal

var firstName = (string)"John"; // *if* the compiler didn't understand that "John"
                                // was a literal representation of a string then I
                                // would have to direct it as such

Я понимаю, что примитивы - это, по сути, элементарные типы данных, которые может понять компилятор, такие как int:

int age = 25;

... литерал может быть не примитивным, например, VB9 'Поддержка XML литералов. Пример нереального мира был бы, если System.Drawing.Point мог быть назначен с литералами:

Point somePoint = 2,2; // both X and Y are primitive values, however Point is a
                       // composite value comprised of two primitive values

Наконец (и это вопрос, который, в свою очередь, побудил меня задать вышеупомянутые вопросы): я понимаю, что независимо от того, является ли тип примитивным или литеральным, нет прямого отношения к тому, является ли он типом Value или Reference.

Например, System.String - это ссылочный тип, который поддерживает литералы. Пользовательские структуры - это составные типы значений, которые не поддерживают литералы.

Правильно ли мое понимание (если не мое объяснение) по большей части?

Обновить: Спасибо за отличную информацию и разговоры! Любой, кто найдет это, обязательно прочитает комментарии, а также ответы, тамНесколько замечательных разъяснений, а также несколько интересных замечаний.

кстати: этоs ответ на вопрос, какой ответ действительно заслуживает того, чтобы получить большой зеленый чек. Я'Я даю его к, к сожалению, отрицательному ответу, который содержит не только достойный ответ, но и множество разъяснений и информации в ветке комментариев. Честно говоря, нетодин лучший ответ здесь, тамне менее трех :)

Ответы на вопрос(8)

Ваш ответ на вопрос