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
  • •
  • ٨ ديسمبر، ٢٠٢٣
  • •
  • 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 ؟

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

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

اشترك الآن 🚀

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

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

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

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

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

  • gRPC 1 min read

    gRPC

    Mahmoud Youssef Mahmoud Youssef • ٤ يونيو، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • API Gateway 1 min read

    API Gateway

    Mahmoud Youssef Mahmoud Youssef • ٢١ مايو، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Hoppscotch 1 min read

    Hoppscotch

    Khaled Abdelfattah Khaled Abdelfattah • ٨ مايو، ٢٠٢٥
    Khaled Abdelfattah Khaled Abdelfattah
    Software Technical Writer
    • Website
  • Building a Scalable Notification System with NodeJS 2 min read

    Building a Scalable Notification System with NodeJS

    Anas Youssef Anas Youssef • ٢٠ أبريل، ٢٠٢٥
    Anas Youssef Anas Youssef
    Backend Developer
    • Website
  • Layered Architecture 1 min read

    Layered Architecture

    Mahmoud Youssef Mahmoud Youssef • ١٨ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Interprocess Communication - Shared Memory 1 min read

    Interprocess Communication - Shared Memory

    Mahmoud Youssef Mahmoud Youssef • ٢٢ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Concurrency Building Blocks (Threads) 1 min read

    Concurrency Building Blocks (Threads)

    Mahmoud Youssef Mahmoud Youssef • ٩ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Deep Dive Into SQL Window Functions: Explained Visually Part II - Lead and Lag 5 min read

    Deep Dive Into SQL Window Functions: Explained Visually Part II - Lead and Lag

    Ahmed Anwar Ahmed Anwar • ٨ يناير، ٢٠٢٥
    Ahmed Anwar Ahmed Anwar
    Software Technical Writer
    • Website
  • Concurrency Building Blocks (Process) 2 min read

    Concurrency Building Blocks (Process)

    Mahmoud Youssef Mahmoud Youssef • ٥ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Top 6 Caching Strategies 2 min read

    Top 6 Caching Strategies

    Mahmoud Youssef Mahmoud Youssef • ٣ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©