C# data types
In C#, variables can be declared with a data type, which determines the kind of values that can be stored in the variable. C# has several built-in data types, as well as the ability to create custom data types through classes and structs.
Here are some of the most common data types in C#:
Numeric Types
Integer Types
C# provides several integer types, which are used to store whole numbers without a fractional component. These types can be signed (positive or negative) or unsigned (positive only).
sbyte
: 8-bit signed integer (-128 to 127)byte
: 8-bit unsigned integer (0 to 255)short
: 16-bit signed integer (-32,768 to 32,767)ushort
: 16-bit unsigned integer (0 to 65,535)int
: 32-bit signed integer (-2,147,483,648 to 2,147,483,647)uint
: 32-bit unsigned integer (0 to 4,294,967,295)long
: 64-bit signed integer (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807)ulong
: 64-bit unsigned integer (0 to 18,446,744,073,709,551,615)
Floating-Point Types
C# provides two floating-point types, which are used to store numbers with a fractional component:
float
: 32-bit floating-point number (approximately ±1.5 x 10^-45 to ±3.4 x 10^38 with 7 significant digits)double
: 64-bit floating-point number (approximately ±5.0 x 10^-324 to ±1.7 x 10^308 with 15-16 significant digits)
Decimal Type
The decimal
type is used to store decimal numbers with a high degree of precision and is often used in financial applications:
decimal
: 128-bit decimal number (-10^28 +1 to 10^28 -1 with 28-29 significant digits)
Boolean Type
The bool
type is used to store a logical value that can be either true
or false
.
Character Type
The char
type is used to store a single character:
char
: 16-bit Unicode character (0 to 65535)
String Type
The string
type is used to store a sequence of characters:
string
: sequence of Unicode characters
Object Type
The object
type is the base class for all types in C#, and can store any kind of value:
object
: any type (value types, reference types, arrays, and interfaces)
Note that in C#, variables can also be declared using the var
keyword, which allows the compiler to infer the data type based on the value assigned to the variable. For example:
var age = 30; // age is inferred as an int var name = "John"; // name is inferred as a string