Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • قائمة القراءة
  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©

Records In C# Deep Dive - Part 2

  • محمد مجدى by محمد مجدى
    محمد مجدى محمد مجدى
    Engineering Manager
    • Website
  • •
  • 8 Dec, 2023
  • •
  • 6 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email
Records In C# Deep Dive - Part 2
Records In C# Deep Dive - Part 2
  • Backend
  • CSharap
  • Programming Language

استكمالا للمقال اللى فات عن ال  records هنكمل النهارده فى الأجزاء اللى متكلمناش فيها فى المقال اللى فات و هنحاول نغطى أجزاء جديدة مهمة جداً فى الموضوع.

هنبدأ الأول بتكملة بسيطه للجزء اللى فات و هو طريقة تعريف ال record  فى الكود والطريقه اللى اتكلمنا عليها فى المقال اللى فات هى:

record Employee(string FirstName, string LastName, double Salary);

ولكن فيه طريقه تانيه زى اللى فى ال code snippet  الجايه:

Record as Class Declaration

var employee1 = new Employee { FirstName = "Mohamed", LastName = "Magdi", Salary = 1000 };
var employee2 = new Employee { FirstName = "Mohamed", LastName = "Magdi", Salary = 1000 };

Console.WriteLine(employee1); // Output: Employee { FirstName = Mohamed, LastName = Magdi, Salary = 1000 }
Console.WriteLine(employee2); // Output: Employee { FirstName = Mohamed, LastName = Magdi, Salary = 1000 }
Console.WriteLine($"Is Equal = {employee1 == employee2}"); // Output: IsEqual = True

employee1.LastName = "Prop is mutable here!";
Console.WriteLine($"Is Equal = {employee1 == employee2}"); // Output: IsEqual = False

record Employee
{
	public string FirstName { get; set; }
	public string LastName { get; set; }
	public double Salary { get; set; }
}

زى ما احنا شايفين هنا، هو نفس تعريف الـ class بالظبط ولكن هنا لما بدلت كلمة class بكلمة record  خدت كل الخصائص بتاعت ال record  الا feature واحدة وهى Immutability  ف دى برده طريقة تقدر تستفيد بيها بال record  لو مش فارق معاك ال immutability  و هتكون سهلة جدا فى ال Migration لو عايز تعدل الـ DTOs  بتاعتك مثلا كلها تكون record عشان تستفيد بباقي المميزات 

طيب لو عايزين ناخد  كمان الـ immutability و بالـ syntax بتاع ال class ؟

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

مقالات ذات صلة

  • OLTP and OLAP in Database Performance at Scale 1 min read

    OLTP and OLAP in Database Performance at Scale

    Ahmed Mohamed Ahmed Mohamed • 11 Nov, 2025
    Ahmed Mohamed Ahmed Mohamed
    Senior Software Engineer
    • Website
  • Wallet Payments Explained 1 min read

    Wallet Payments Explained

    Muhammad Bassiouny Muhammad Bassiouny • 27 Sep, 2025
    Muhammad Bassiouny Muhammad Bassiouny
    Software Developer
    • Website
  • Payment Gateway Integrations 1 min read

    Payment Gateway Integrations

    Muhammad Bassiouny Muhammad Bassiouny • 1 Sep, 2025
    Muhammad Bassiouny Muhammad Bassiouny
    Software Developer
    • Website
  • Payment Fees Explained 1 min read

    Payment Fees Explained

    Muhammad Bassiouny Muhammad Bassiouny • 21 Aug, 2025
    Muhammad Bassiouny Muhammad Bassiouny
    Software Developer
    • Website
  • Guide to Payment Transaction Types in Fintech 1 min read

    Guide to Payment Transaction Types in Fintech

    Muhammad Bassiouny Muhammad Bassiouny • 21 Aug, 2025
    Muhammad Bassiouny Muhammad Bassiouny
    Software Developer
    • Website
  • 3DS Challenge in Online Payments Explained 1 min read

    3DS Challenge in Online Payments Explained

    Muhammad Bassiouny Muhammad Bassiouny • 20 Aug, 2025
    Muhammad Bassiouny Muhammad Bassiouny
    Software Developer
    • Website
  • Luhn Algorithm Explained 1 min read

    Luhn Algorithm Explained

    Alaa Elkzaz Alaa Elkzaz • 19 Aug, 2025
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • Credit & Debit Cards Explained 1 min read

    Credit & Debit Cards Explained

    Alaa Elkzaz Alaa Elkzaz • 8 Aug, 2025
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • How Online Payments Work 1 min read

    How Online Payments Work

    Alaa Elkzaz Alaa Elkzaz • 1 Aug, 2025
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • Top 6 API Performance Techniques 2 min read

    Top 6 API Performance Techniques

    Alaa Elkzaz Alaa Elkzaz • 18 Jul, 2025
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©