• هي لغة Strongly Typed: يعني وأنت بتعرف أي قيمة لازم تحدد نوع الـdata اللي هتخزنها

Primitive types table (Built-in)

  • Value Type
  • بتتخزن في حتة في الميموري اسمها Stack بطريقة ال Value
  • اللي بتبقا جاهزة وجاية مع اللغة

// Integer
// byte, int, short, long
byte x = 20;
Console.WriteLine(byte.MinValue + " : " + byte.MaxValue); // 0 : 255
Console.WriteLine(sizeof(byte)); // In memory : Space (1 byte)
 
// Real (Fraction)
// decimal, float, double
double x = 2.5; // default type for fraction
float y = 5.6f;
decimal z = 4.1m;
 
// One character
char x = '+'; // Single quote
// 2 bytes : UNI Code
 
// Text
string x = "Mahmoud"; // Double quote
string path = @"c:\Users\Mahmoud"; // @ for skip the skip char
 
// Boolean
bool b = true;
bool x = false; // 0 or 1 not allowed
 
 
// Non Primitive
 
// Time
// DateTime

.NET types

  • عندي types زي ما واضح في الصورة فوق للـ .NET عشان نفس حوار إنها تبقا cross languages
  • مش أحسن حاجة إنك تستخدمها واستخدم بتاع الـ C# أحسن

unsigned types

  • لو عايز ال variable يخزن قيم من غير إشارة (ميخزنش السالب) فعندنا data types جاهزة للحوار دا
  • اكتب u قبل ال data type ومش موجود لكله
uint x = -2; // ERROR

_ : Discards

  • ممكن نستخدمها عشان نخلي الرقم مقروء أكتر اني افصل بين كل 3 أرقام مثلًا
int X = 1_000_000_000;
X = 0x_00_00_FA_12; //Hex
byte y = 0b_0101_1100; //Binary

fraction

العلامة العشرية بكل بساطة بتبقا double، فلو عايز أخزنها في float او decimal لازم اعرف الكومبايلر

double x = 15.3;
float y = 15.3F;
decimal z = 13.5M;

Non Primitive Data Types (User Define)

Classes

public class Vehicle
{
	public int Id;
	public short Year;
	public string Make;
 
	public void DriveVehicleForward()
	{
		// bla bla bla
	}
}

Numeric Formatting

Console.WriteLine($"Equation : {X,5}+{Y,-5}={X + Y:X}");

الخمسة اللي حطيتها مع ال x دي يعني هيطبع في 5 digit ولو خليتها بالسالب هيظهر الرقم عالشمال مش عاليمين ممكن نحول من data type لنوع تاني من خلال Cs Type Casting