Variables and Data Types
C# Variables and Data Types
C# variables store data values, and each variable has a data type that determines the type of data it can hold and how much memory it uses. C# is a strongly typed language, meaning every variable must have a defined type.
Value Types (Stored in the stack)
Value types directly store data. Below are the value types, their sizes in memory, and ranges.
Type
Bytes
Range
Example
byte
1
0 to 255
byte b = 255;
sbyte
1
-128 to 127
sbyte sb = -128;
short
2
-32,768 to 32,767
short s = -1000;
ushort
2
0 to 65,535
ushort us = 50000;
int
4
-2,147,483,648 to 2,147,483,647
int i = 123;
uint
4
0 to 4,294,967,295
uint ui = 4000000000;
long
8
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
long l = 900000;
ulong
8
0 to 18,446,744,073,709,551,615
ulong ul = 123456789;
float
4
±1.5 × 10⁻⁴⁵ to ±3.4 × 10³⁸
float f = 3.14f;
double
8
±5.0 × 10⁻³²⁴ to ±1.7 × 10³⁰⁸
double d = 3.14159;
decimal
16
±1.0 × 10⁻²⁸ to ±7.9 × 10²⁸
decimal dec = 1000.99m;
char
2
Unicode characters (U+0000 to U+FFFF)
char c = 'A';
bool
1 (true/false)
N/A
bool isTrue = true;
Reference Types (Stored in the heap)
Reference types store a reference to the data's location in memory.
Type
Description
Example
string
A sequence of characters
string name = "Alice";
object
Base type of all types
object obj = 42;
dynamic
Type resolved at runtime
dynamic dyn = "text"; dyn = 123;
Default Values
If variables are not explicitly initialized, they take default values.
Type
Default Value
int
0
float
0.0f
bool
false
string
null
object
null
Examples
1. Numeric Types
2. Boolean and Char
3. Strings and Objects
Summary
Value Types: Stored in the stack, directly hold data (e.g.,
int,float,bool).Reference Types: Stored in the heap, hold references to data (e.g.,
string,object).Default Values: Variables get defaults like
0for numbers andnullfor references.Memory Efficiency: Choose types like
floatordecimalbased on precision needs.
Last updated