Lession 07: Data types in C#

In the previous section, we have seen that a variable must be declared with the data type because C# is a strongly-typed language. For example,
string message = "Hello World!!";
string is a data type, message is a variable, and "Hello World!!" is a string value assigned to a variable - message.
The data type tells a C# compiler what kind of value a variable can hold. C# includes many in-built data types for different kinds of data, e.g., String, number, float, decimal, etc.
Example: Data types

class Program
{
    static void Main(string[] args)
    {
        string stringVar = "Hello World!!";
        int intVar = 100;
        float floatVar = 10.2f;
        char charVar = 'A';
        bool boolVar = true;

    }
}
Each data types includes specific range of values. For example, a variable of int data type can have any value between -2,147,483,648 to 2,147,483,647. The same way, bool data type can have only two value - true or false. The following table lists the data types available in C# along with the range of values possible for each data type:
.NET TypeRange (values)
Byte0 to 255
SByte-128 to 127
Int32-2,147,483,648 to 2,147,483,647
UInt320 to 4294967295
Int16-32,768 to 32,767
UInt160 to 65,535
Int64-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
UInt640 to 18,446,744,073,709,551,615
Single-3.402823e38 to 3.402823e38
Double-1.79769313486232e308 to 1.79769313486232e308
CharUnicode symbols used in text
BooleanTrue or False
Object
String
Decimal(+ or -)1.0 x 10e-28 to 7.9 x 10e28
DateTime0:00:00am 1/1/01 to 11:59:59pm 12/31/9999
As you can see in the above table that each data types (except string and object) includes value range. Compiler will give an error if value goes out of datatype's permitted range. For example, int data type's range is -2,147,483,648 to 2,147,483,647. So if you assign value which is not in this range then compiler would give error.
Example: Compile time error

// compile time error: Cannot implicitly convert type 'long' to 'int'.
int i = 21474836470; 

Alias vs .Net Type:

In the above table of data types, first column is for data type alias and second column is actual .Net type name. For example, int is an alias (or short name) for Int32. Int32 is a structure defined in System namespace. The same way, string represent String class.
AliasType Name.Net Type
byteSystem.Bytestruct
sbyteSystem.SBytestruct
intSystem.Int32struct
uintSystem.UInt32struct
shortSystem.Int16struct
ushortSystem.UInt16struct
longSystem.Int64struct
ulongSystem.UInt64struct
floatSystem.Singlestruct
doubleSystem.Doublestruct
charSystem.Charstruct
boolSystem.Booleanstruct
objectSystem.ObjectClass
stringSystem.StringClass
decimalSystem.Decimalstruct
DateTimeSystem.DateTimestruct
Data types are further classified as value type or reference type, depending on whether a variable of a particular type stores its own data or a pointer to the data in the memory.
Learn about variables in value type and reference type in the next section.

Comments

Popular posts from this blog

Display multiline text in razor

Lession 20: Create Layout View

Lession 54: Predicate delegate in C#