Data Types, The variables in C#, are categorized into the following types
- Value types
- Reference types
- Pointer types
Value Type
Value type variables may be assigned a cost at once. They are derived from the class System.ValueType.
The cost sorts immediately comprise facts. Some examples are int, char, and float, which shops numbers, alphabets, and floating point numbers, respectively. When you claim an int kind, the machine allocates reminiscence to keep the fee.
The following desk lists the to be had fee types in C# 2010
Type | Represents | Range | Default Value |
---|---|---|---|
bool | Boolean value | True or False | False |
byte | 8-bit unsigned integer | 0 to 255 | 0 |
char | 16-bit Unicode character | U +0000 to U +ffff | ‘\0’ |
decimal | 128-bit precise decimal values with 28-29 significant digits | (-7.9 x 1028 to 7.9 x 1028) / 100to 28 | 0.0M |
double | 64-bit double-precision floating point type | (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 | 0.0D |
float | 32-bit single-precision floating point type | -3.4 x 1038 to + 3.4 x 1038 | 0.0F |
int | 32-bit signed integer type | -2,147,483,648 to 2,147,483,647 | 0 |
long | 64-bit signed integer type | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 0L |
sbyte | 8-bit signed integer type | -128 to 127 | 0 |
short | 16-bit signed integer type | -32,768 to 32,767 | 0 |
uint | 32-bit unsigned integer type | 0 to 4,294,967,295 | 0 |
ulong | 64-bit unsigned integer type | 0 to 18,446,744,073,709,551,615 | 0 |
ushort | 16-bit unsigned integer type | 0 to 65,535 | 0 |
To get the precise size of a type or a variable on a particular platform, you can use the sizeof approach.
The expression sizeof(kind) yields the storage length of the object or kind in bytes. Following is an example to get the dimensions of int kind on any machine
using System;
namespace DataTypeApplication {
class Program {
static void Main(string[] args) {
Console.WriteLine("Size of int: {0}", sizeof(int));
Console.ReadLine();
}
}
}
When the above code is compiled and done, it produces the subsequent end result −
Size of int: 4
Reference Type
The reference sorts do now not contain the actual information stored in a variable, however they comprise a reference to the variables.
In different words, they seek advice from a reminiscence location. Using multiple variables, the reference sorts can refer to a memory place.
If the statistics inside the reminiscence vicinity is changed by way of one of the variables, the alternative variable routinely reflects this variation in cost.
Example of built-in reference types are: object, dynamic, and string.
Data Types, Object Type
The Object Type is the closing base magnificence for all facts sorts in C# Common Type System (CTS). Object is an alias for System.Object elegance. The item types can be assigned values of every other kinds, fee kinds, reference sorts, predefined or consumer-defined types. However, before assigning values, it desires type conversion.
When a cost type is converted to object type, it’s far called boxing and then again, whilst an item kind is converted to a fee kind, it’s miles known as unboxing.
Item obj; obj = 100; // that is boxing
Dynamic Type
You can store any type of price within the dynamic statistics kind variable. Type checking for those styles of variables takes place at run-time.
Data Types, Syntax for declaring a dynamic type is −
dynamic <variable_name> = value;
For example,
dynamic d = 20;
Dynamic sorts are much like object kinds besides that type checking for object kind variables takes vicinity at assemble time, while that for the dynamic type variables takes location at run time.
String Type
Data Types, The String Type permits you to assign any string values to a variable. The string kind is an alias for the System.String elegance. It is derived from item type.
The price for a string kind may be assigned the use of string literals in two forms: quoted and @quoted.
For instance,
String str = “Tutorials Point”;
A @quoted string literal appears as follows −
@”Tutorials Point”;
The person-described reference sorts are: magnificence, interface, or delegate. We will discuss these types in later bankruptcy.
Data Types, Pointer Type
Pointer kind variables save the memory cope with of every other kind. Pointers in C# have the equal abilities because the hints in C or C++.
Syntax for declaring a pointer type is −
kind* identifier;
For instance,
char* cptr; int* iptr;
We will talk pointer sorts inside the bankruptcy ‘Unsafe Codes’.