Bird
0
0

You want to create an immutable record-like class with properties set only once during creation. Which approach best uses init-only setters to achieve this?

hard🚀 Application Q8 of 15
C Sharp (C#) - Properties and Encapsulation
You want to create an immutable record-like class with properties set only once during creation. Which approach best uses init-only setters to achieve this?
public class Product {
    public string Name { get; init; }
    public decimal Price { get; init; }
}

How should you create and set properties for a Product instance?
Avar p = new Product { Name = "Pen", Price = 1.5m };
Bvar p = new Product(); p.Name = "Pen"; p.Price = 1.5m;
Cvar p = new Product(); p.Name = "Pen"; p.Price = 1.5m; p.Price = 2.0m;
Dvar p = new Product(); p.Name = "Pen";
Step-by-Step Solution
Solution:
  1. Step 1: Understand init-only setter usage

    Properties with init-only setters must be set during object initialization.
  2. Step 2: Evaluate each creation method

    var p = new Product { Name = "Pen", Price = 1.5m }; uses object initializer syntax correctly; B and C assign after creation (invalid); D misses Price assignment.
  3. Final Answer:

    var p = new Product { Name = "Pen", Price = 1.5m }; -> Option A
  4. Quick Check:

    Init-only properties set in initializer = var p = new Product { Name = "Pen", Price = 1.5m }; [OK]
Quick Trick: Use object initializer to set init-only properties [OK]
Common Mistakes:
MISTAKES
  • Assigning init-only properties after creation
  • Trying to reassign init-only properties
  • Omitting required property assignments

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More C Sharp (C#) Quizzes