Thursday, October 5, 2017

Variable. Value type and Reference type

What is a variable in C#?

A variable represents a string or a numeric value or an object of a class.
The value of that variable store may change but the name stays the same.
A variable is one type of field.

Example of variable change the value but the name remains the same. 
int  x = 1; //x holds the value 1
x =2; //now x holds the value 2


Strongly type and location 

C# is a strongly typed language which means that you have to specify the type of the variable.
also, Each type in c# has a different size and layout in the memory.

What is meant by reference type in C#?

There is two kind of types, one type is reference and value type.
reference type store reference to their data and value type point directly to the data.

also, two reference type can refer to the same object, there for a variable can affect on the object.
but with a value type, each variable has its own copy of data.

Example of reference type

  • Class
  • Interface 
  • Delegate


C# also provides a built-in reference type

  • Dynamic
  • object
  • string

Value Type

Variable of type value data, contain value directly.
The variable will point directly to the location of the storage.


Example of Value Type

TypeRepresentsRangeDefault Value
boolBoolean valueTrue or FalseFalse
byte8-bit unsigned integer0 to 2550
char16-bit Unicode characterU +0000 to U +ffff'\0'
decimal128-bit precise decimal values with 28-29 significant digits(-7.9 x 1028 to 7.9 x 1028) / 100 to 280.0M
double64-bit double-precision floating point type(+/-)5.0 x 10-324 to (+/-)1.7 x 103080.0D
float32-bit single-precision floating point type-3.4 x 1038 to + 3.4 x 10380.0F
int32-bit signed integer type-2,147,483,648 to 2,147,483,6470
long64-bit signed integer type-9,223,372,036,854,775,808 to 9,223,372,036,854,775,8070L
sbyte8-bit signed integer type-128 to 1270
short16-bit signed integer type-32,768 to 32,7670
uint32-bit unsigned integer type0 to 4,294,967,2950
ulong64-bit unsigned integer type0 to 18,446,744,073,709,551,6150
ushort16-bit unsigned integer type0 to 65,5350

No comments:

Post a Comment