В чем разница между временем компиляции и временем выполнения? - PullRequest
11 голосов
/ 05 октября 2009

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

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

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

Ответы [ 4 ]

22 голосов
/ 05 октября 2009

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

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

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

5 голосов
/ 05 октября 2009

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

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

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

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

1 голос
/ 16 мая 2013

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

0 голосов
/ 22 мая 2010

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

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

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

...