Course Content
C# Basics
C# Basics
Integer Data Types
Data Types are classification of data values into different categories based on their nature such as integer numbers, decimal numbers, textual data etc. Each data type has different kinds of operations associated with it, for-example we can perform arithmetic operations on numerical data but not on textual data.
The int
keyword refers to the "integer" data type which basically represents the integer numbers.
In the last section we learnt the following syntax for declaring a variable:
Apart from the above syntax, there is another method of variable declaration:
Here type
refers to the data type of the variable. So far we know only int
. We can declare a variable of integer data type in the following way:
In this case we can also declare a variable without giving it an initial value:
Note
Giving an initial value to a variable at the time of declaration is called initialization.
The var
keyword allows the compiler to automatically infer the datatype of a variable based on the assigned value. For instance, in var myVariable = 7;
, the variable myVariable
is assigned an integer value, making its data type int
. Such a variable is called an Implicitly-Typed Variable. Note that when using the var
keyword, the variable must always be initialized as well, therefore writing var myVariable;
is invalid.
On the other hand, manually specifying the datatype doesn't require an initial value. Therefore, both int myVariable;
and int myVariable = 10;
are valid statements. In this case myVariable
is an Explicitly-Typed Variable.
Following code summarizes the above two paragraphs:
main
var myVar1 = 10; // Valid var myVar2; // Error: Implicitly-typed variables must be initialized int myVar3 = 10; // Valid int myVar4; // Valid
It is important to note that we cannot use a variable that hasn't been assigned any value. Therefore the following code will give an error:
main
int myVar; System.Console.WriteLine(myVar); // Error: Use of unassigned local variable 'myVar'
Correction:
main
int myVar; myVar = 10; System.Console.WriteLine(myVar); // Output: 10
We can reassign a variable as many times as we want:
main
int myVar = 10; System.Console.WriteLine(myVar); // Output: 10 myVar = 15; System.Console.WriteLine(myVar); // Output: 15 myVar = 17; System.Console.WriteLine(myVar); // Output: 17 myVar = 7; System.Console.WriteLine(myVar); // Output: 7
An int
variable can only store values within a certain range. There is another datatype long
which is the same as int
however it can store bigger numbers.
Range | |
---|---|
int | -2,147,483,648 to 2,147,483,647 |
long | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
Storing a bigger number than a data type can hold might give unexpected results. We don't need to look at that into detail at this level.
We can perform arithmetic operations on int
and long
data. The following snippet of code shows some examples:
main
// int values int a = 10; int b = 25; int c = a + b; // long values long d = 1000; long e = 2500; long f = d + e; // Adding a 'long' and an 'int' always results in a 'long' resultant value. // Therefore we can store the result of 'd + a' into a new 'long' variable called 'g'. long g = d + a; // For the same reason, we cannot store the result of 'd + a' into an 'int' variable int h = d + a; // Error on this line int i = 5 / 2; System.Console.WriteLine(i); // Output: 2 // Dividing 5 by 2 gives 2.5 however since 'int' can only store integer values, hence the decimal (0.5) part is ignored.
There are two other data types uint
and ulong
, called unsigned int and unsigned long respectively. An unsigned data type can only hold positive numbers, consequently they have a bigger positive range.
Range | |
---|---|
uint | 0 to 4,294,967,295 |
ulong | 0 to 18,446,744,073,709,551,615 |
Thanks for your feedback!