पाठ 6 / 26

Classes और Records

Classes और immutable records से डेटा मॉडल करें और उनकी सही तुलना करें।

Class या record?

class डिफ़ॉल्ट रूप से reference से तुलना करता है। record value से तुलना करता है और with copies व पढ़ने लायक ToString() देता है। API के request/response जैसे सादे डेटा के लिए records इस्तेमाल करें।

Record का उपयोग

बराबर values वाले दो records बराबर होते हैं। with बदली हुई copy बनाता है और मूल को नहीं छूता।

public record Product(int Id, string Name, decimal Price);

var a = new Product(1, "Pen", 10m);
var b = new Product(1, "Pen", 10m);
Console.WriteLine(a == b);
var c = a with { Price = 12m };
Console.WriteLine(c);

Output:

True
Product { Id = 1, Name = Pen, Price = 12 }

चेक बनाम पता

Classes को reference से तुलना करना ऐसा है जैसे पूछना कि दो लोग एक ही पते पर रहते हैं या नहीं। Records को value से तुलना करना ऐसा है जैसे पूछना कि दो चेक पर राशि और नाम एक ही है या नहीं।

त्वरित जाँच: Record की बदली हुई copy कौन-सा keyword बनाता है?

  • copy
  • with
  • clone
  • new
Answer

with — `with { ... }` बताए गए properties बदलकर नया record बनाता है।