2009-10-05 5 views

risposta

21

"Compile time" è quando si crea il codice - quando il compilatore converte il codice sorgente in IL.

"Runtime" è quando il codice viene eseguito - per ASP.NET, quando viene effettuata una richiesta di pagina. (Personalmente preferisco il termine "tempo di esecuzione" per distinguere tra quello e "Common Language Runtime (CLR)", ovvero la macchina virtuale.)

I tipi di valore e i tipi di riferimento sono un concetto completamente separato, ma ho an article su di loro che potresti trovare utile.

+0

thank you jon skeet –

+0

quello che devo dire è per la memoria di tipo valore allocata al momento della compilazione e per il tipo di riferimento memoria allocata al runtime –

+0

@Surya: No, non è affatto vero. Sono concetti completamente separati - non provare a metterli insieme. –

4

Una variabile che è un tipo di valore, memorizza i dati, mentre una variabile di un tipo di riferimento memorizza un riferimento i dati.

In informatica, compile time si riferisce sia alle operazioni eseguite da un compilatore (il "tempo di compilazione operazioni"), i requisiti linguistici di programmazione che devono essere soddisfatti dal codice sorgente per essere compilato con successo (il "requisiti in fase di compilazione"), o proprietà del programma su cui è possibile ragionare in fase di compilazione.

Le operazioni eseguite in fase di compilazione di solito includono l'analisi della sintassi, vari tipi di analisi semantica (ad esempio, controlli di tipo e creazione di modelli) e generazione di codice.

In informatica, il qualificatore run time, tempo di esecuzione, il tempo di esecuzione, o l'esecuzione si riferisce al periodo mentre un programma per computer viene effettivamente eseguita ("run") in un computer, dall'inizio alla cessazione. Può anche significare il tempo di esecuzione del programma, la durata di quel periodo.

+1

I tipi di valore non vengono sempre memorizzati nello stack. Vedi http://pobox.com/~skeet/csharp/memory.html –

+0

Modificato il mio post. – rahul

+0

Grazie a @Jon per l'articolo. – rahul

0

Per quanto riguarda la prima domanda, vedere Stack Overflow: Runtime vs Compile time.

Per quanto riguarda la seconda domanda, vedere Stack Overflow: What are the differences between value types and reference types in C#.

Per quanto riguarda il modo in cui si riferiscono: sono concetti indipendenti. L'impostazione del valore di una variabile e la lettura del suo valore avviene in fase di esecuzione; se tale variabile ha o meno un tipo di valore o un tipo di riferimento.

1

La variabile del tipo di valore indica variabile che può memorizzare direttamente il proprio valore.
La variabile del tipo di riferimento indica la variabile che memorizza il riferimento (ossia l'indirizzo del valore) del valore invece di memorizzare direttamente il valore.