The data types in C# are divided into three types. These are:
The following are the details about all the data types in C#:
A data value can be assigned directly to value data types. They can contain both signed and unsigned literals. Some of the value data types are int, float and char, which contain integers, floating point numbers and alphabets respectively.
A table that lists all the available value data types is as follows:
Table: Value Data Types in C#
Data Type | Represents | Memory Size | Range | Default Value |
---|---|---|---|---|
Bool | Boolean Value | 1 byte | True or False | False |
Byte | Unsigned Integer | 1 byte | 0 to 255 | 0 |
Char | Unicode character | 1 byte | U +0000 to U +ffff | ‘\0’ |
Short | Signed integer type | 2 byte | -32,768 to 32,767 | 0 |
signed short | Signed integer type | 2 byte | -32,768 to 32,767 | 0 |
unsigned short | Unsigned integer type | 2 byte | 0 to 65,535 | 0 |
int | Signed integer type | 4 byte | -2,147,483,648 to 2,147,483,647 | 0 |
signed int | Signed integer type | 4 byte | -2,147,483,648 to 2,147,483,647 | 0 |
unsigned int | Unsigned integer type | 4 byte | 0 to 4,294,967,295 | 0 |
long | Signed integer type | 8 byte | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 0L |
signed long | Signed integer type | 8 byte | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 0 |
unsigned long | Unsigned integer type | 8 byte | 0 to 18,446,744,073,709,551,615 | 0 |
float | Single precision floating point type | 4 byte | -3.4 x 1038 to + 3.4 x 1038 | 0.0F |
double | Double-precision floating point type | 8 byte | (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 | 0.0D |
decimal | Decimal values with 28-29 significant digits | 16 byte | (-7.9 x 1028 to 7.9 x 1028) / 100 to 28 | 0.0M |
A C# program that demonstrates different value data types is as follows:
Source Code: Program to work with Value data types in C#
using System; public class Demo { public static void Main() { bool boolVar = true; // bool byte byteVar = 255; // byte short shortVar = -66; // short ushort ushortVar = 66; // unsigned short int intVar = -1000; // integer uint uintVar = 1000; // unsigned int long longVar = -56000; // long ulong ulongVar = 56000; // Unsigned long float floatVar = 160.54 F; // float double doubleVar = 13782.57543 D; // double char charVar = 'A'; // character Console.WriteLine("Value Data Types in C#"); Console.WriteLine(boolVar); Console.WriteLine(byteVar); Console.WriteLine(shortVar); Console.WriteLine(ushortVar); Console.WriteLine(intVar); Console.WriteLine(uintVar); Console.WriteLine(longVar); Console.WriteLine(ulongVar); Console.WriteLine(floatVar); Console.WriteLine(doubleVar); Console.WriteLine(charVar); } }
The output of the above program is as follows:
Value Data Types in C# True 255 -66 66 -1000 1000 -56000 56000 160.54 13782.57543 A
The reference data types contain a reference to the variables and not the actual data stored in the variables i.e. they refer to a memory location.
The different reference data types in C# are:
Every type in C# derives from the object class type, whether directly or indirectly. The values of different data types are treated as objects by using boxing and unboxing. It is boxing when the value type is converted to object type and unboxing when object type is converted to value type.
A program that demonstrates boxing and unboxing is as follows:
Source Code: Program to implement Boxing and Unboxing in C#
using System; class Demo { static void Main() { int val1 = 100; object obj = val1; // This is Boxing int val2 = (int)obj; // This is Unboxing } }
Arrays are a collection of data types of the same type. They are stored as contiguous memory locations. The lowest address contains the first element and the highest address contains the last element.
A program that demonstrates arrays is as follows:
Source Code: Program to work with Array Types in C#
using System; public class Example { public static void Main(string[] args) { int[] a = new int[] {1,2,3,4}; for(int i=0;i<4;i++) Console.WriteLine(a[i]); } }
A string is a sequence of zero or more unicode characters in C#. It is derived from the object type like all C# types.
A program that demonstrates strings is as follows:
Source Code: Program to work with String Types in C#
using System; public class Demo { public static void Main() { string a = "Hello"; Console.WriteLine(a); // Displays Hello } }
The pointer data types in C# store the address of another data type. They are used in an unsafe context i.e. an unsafe modifier is required in the program to use pointers..
The syntax of the pointer data type is as follows:
type* identifier;
A program that demonstrates pointers is as follows:
Source Code: Program to implement Pointer Types in C#
using System; namespace PointerDemo { class Example { static unsafe void Main(string[] args) { int val = 100; int* ptr = &val; Console.WriteLine("Data value is: {0} ", val); Console.WriteLine("Address of the data value is: {0}", (int)ptr); } } }
The output of the above code is as follows:
Note: Unsafe code may only appear if you compile with /unsafe Data value is: 100 Address of the data value is: 74638937
Avery good write-up. Please let me know what are the types of C# libraries used for AI development.
very satisfied!!
Good tutorial. Small question: Say, there is : enum numbers { one, two, three} and a string field_enum ="one" how would I from the variable field_enum have a response with value numbers.one so that it can be treated as an enum and not as a string. making a list from the enum, and loop into the list. is not elegant... and may not work is forced value on field is forced ( one = 100).
Hi Team Knowledge Hut, Thank you for such an informative post like this. I am completely new to this digital marketing field and do not have much idea about this, but your post has become a supportive pillar for me. After reading the blog I would expect to read more about the topic. I wish to get connected with you always to have updates on these sorts of ideas. Regards, Kshitiz
The reason abstraction can be used with this example is because, the triangle, circle. Square etc can be defined as a shape, for example.....shape c = new circle(5,0)...the abstract object c now points at the circle class. Thus hiding implementation
Leave a Reply
Your email address will not be published. Required fields are marked *