В чем разница между "временем компиляции" и "временем выполнения"?

Я не понимаю, что подразумевается под терминами "время компиляции" и "время выполнения" (или "время выполнения" ).

Я также немного смущен тем, что означают "тип значения" и "ссылочный тип", и как они относятся к "упомянутым выше временам.

Кто-нибудь, пожалуйста, объясните это?

Ответ 1

"Время компиляции" - это когда вы создаете свой код - когда компилятор преобразует ваш исходный код в IL.

"Время выполнения" - это когда ваш код выполняется - для ASP.NET, когда выполняется запрос страницы. (Лично я предпочитаю термин "время выполнения", чтобы отличать это от "Common Language Runtime (CLR)" - как виртуальная машина.)

Типы значений и ссылочные типы - это совершенно отдельная концепция, но я статья о них, которая может вам пригодиться.

Ответ 2

Переменная, которая является типом значения, хранит данные, а переменная ссылочный тип хранит ссылку на данные.

В информатике время компиляции относится к операциям, выполняемым компилятором ( "компиляция-), требования к языку программирования, которые должны быть удовлетворены исходным кодом для его успешного компиляции (" требования времени компиляции") или свойствами программы, которые могут быть обоснованы во время компиляции.

Операции, выполняемые во время компиляции, обычно включают синтаксический анализ, различные виды семантического анализа (например, проверки типов и создание шаблона) и генерации кода.

В информатике квалификатор время выполнения, время выполнения, время выполнения или время выполнения ссылаются на период, когда компьютерная программа фактически выполняется ( "запускается" ) на компьютере, от начала до конца. Это может также означать время работы программы, продолжительность этого периода.

Ответ 3

Переменная типа значения означает переменную, которая может напрямую хранить свое значение.
Тип ссылочного типа означает переменную, которая хранит ссылку (то есть значение значения) своего значения вместо сохранения значения напрямую.

Ответ 4

Что касается вашего первого вопроса, см. Переполнение стека: время выполнения и время компиляции.

Что касается вашего второго вопроса, см. Переполнение стека: каковы различия между типами значений и ссылочными типами в С#.

Как они соотносятся: они являются независимыми понятиями. Установка значения переменной и чтение ее значения происходит во время выполнения; независимо от того, имеет ли эта переменная тип значения или ссылочный тип.