I do not understand what is meant by the terms \"compile time\" and \"run time\" (or \"runtime\").
I\'m also a bit confused about what \"value type\" and \"reference ty
A variable that is a value type, stores the data, while a variable of a reference type stores a reference to the data.
In computer science, compile time refers to either the operations performed by a compiler (the "compile-time operations"), programming language requirements that must be met by source code for it to be successfully compiled (the "compile-time requirements"), or properties of the program that can be reasoned about at compile time.
The operations performed at compile time usually include syntax analysis, various kinds of semantic analysis (e.g., type checks and instantiation of template) and code generation.
In computer science, the qualifier run time, run-time, runtime, or execution time refers to the period while a computer program is actually executed ("run") in a computer, from beginning to termination. It may also mean the program's running time, the duration of that period.
"Compile time" is when you build your code - when the compiler converts your source code into IL.
"Runtime" is when your code is executed - for ASP.NET, when a page request is made. (Personally I prefer the term "execution time" to distinguish between that and "the Common Language Runtime (CLR)" - aka the virtual machine.)
Value types and reference types are an entirely separate concept, but I have an article about them which you may find useful.
As to your first question, see Stack Overflow: Runtime vs Compile time.
As to your second question, see Stack Overflow: What are the differences between value types and reference types in C#.
As to how they relate: they are independent concepts. Setting a variable's value and reading its value happens at run time; whether or not that variable has value type or reference type.
Value type variable means variable who can store its own value directly.
Reference type variable means variable who store reference (i.e.address of value) of their value instead of storing value directly.