Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a read-only property in C#?
A read-only property is a property that allows you to get (read) its value but not set (write) it. It has a getter but no setter.
Click to reveal answer
beginner
What is a write-only property in C#?
A write-only property is a property that allows you to set (write) its value but not get (read) it. It has a setter but no getter.
Click to reveal answer
beginner
How do you declare a read-only property in C#?
You declare a read-only property by providing only the get accessor and omitting the set accessor. Example:
public int Age { get; }
Click to reveal answer
intermediate
Can a property be both read-only and write-only at the same time?
No, a property cannot be both read-only and write-only simultaneously because it would mean you can neither read nor write it. It must have at least one accessor.
Click to reveal answer
intermediate
Why would you use a write-only property?
You use a write-only property to allow setting a value without allowing it to be read back. This can be useful for sensitive data like passwords where you want to accept input but not expose the value.
Click to reveal answer
Which accessor(s) does a read-only property have?
AOnly get
BOnly set
CBoth get and set
DNeither get nor set
✗ Incorrect
A read-only property has only the get accessor to allow reading the value.
What happens if you try to read a write-only property?
AYou get the property's value
BThe property returns null
CYou get a compile-time error
DThe program crashes at runtime
✗ Incorrect
Trying to read a write-only property causes a compile-time error because there is no get accessor.
How do you declare a write-only property in C#?
AProvide both get and set accessors
BProvide only the get accessor
CProvide neither accessor
DProvide only the set accessor
✗ Incorrect
A write-only property has only the set accessor to allow writing the value.
Why might you want a property to be read-only?
ATo make the property private
BTo prevent external code from changing its value
CTo allow both reading and writing
DTo prevent reading the value
✗ Incorrect
Read-only properties allow reading but prevent external code from changing the value.
Which of these is a valid read-only property declaration?
Apublic int Value { get; }
Bpublic int Value { set; }
Cpublic int Value { get; set; }
Dpublic int Value { }
✗ Incorrect
A read-only property has only the get accessor, like 'public int Value { get; }'.
Explain how to create a read-only property in C# and why you might use it.
Think about properties that should not be changed after creation.
You got /4 concepts.
Describe a scenario where a write-only property is useful and how to declare it.
Consider when you want to accept input but not reveal it.
You got /4 concepts.
Practice
(1/5)
1.
Which statement correctly describes a read-only property in C#?
easy
A. It has only a set accessor and no get accessor.
B. It has only a get accessor and no set accessor.
C. It has both get and set accessors.
D. It has no accessors at all.
Solution
Step 1: Understand property accessors
A property with only a get accessor allows reading but not writing.
Step 2: Identify read-only property
Read-only properties have no set accessor, so they cannot be assigned a value.
Final Answer:
It has only a get accessor and no set accessor. -> Option B
Quick Check:
Read-only = get only [OK]
Hint: Read-only means only get accessor present [OK]
Common Mistakes:
Confusing read-only with write-only properties
Thinking both get and set are needed for read-only
Assuming no accessors means read-only
2.
Which of the following is the correct syntax for a write-only property named Password in C#?
public string Password { ? }
easy
A. set { _password = value; }
B. get { return _password; }
C. get; set;
D. private get; public set;
Solution
Step 1: Identify write-only property syntax
A write-only property has only a set accessor to allow writing but no reading.
Step 2: Match syntax to write-only
set { _password = value; } shows only a set accessor with assignment, which is correct for write-only.
Final Answer:
set { _password = value; } -> Option A
Quick Check:
Write-only = set only [OK]
Hint: Write-only means only set accessor present [OK]
Common Mistakes:
Using get accessor in write-only property
Using both get and set for write-only
Incorrect accessor visibility modifiers
3.
What will be the output of the following C# code?
class User {
private string _name = "Alice";
public string Name { get { return _name; } }
}
var user = new User();
Console.WriteLine(user.Name);
medium
A. Compilation error
B. null
C. Runtime error
D. Alice
Solution
Step 1: Analyze the property
The Name property is read-only with a get accessor returning "Alice".
Step 2: Check output of Console.WriteLine
Calling user.Name returns "Alice", so it prints "Alice".
Final Answer:
Alice -> Option D
Quick Check:
Read-only property returns stored value [OK]
Hint: Read-only property returns stored value when accessed [OK]
Common Mistakes:
Expecting a compilation error due to missing set
Thinking write-only properties can be read
Confusing private field with property access
4.
Identify the error in this C# code snippet:
class Account {
private string _pin;
public string Pin {
get { return _pin; }
set { _pin = value; }
}
}
var acc = new Account();
acc.Pin = "1234";
Console.WriteLine(acc.Pin);
The goal is to make Pin write-only.
medium
A. The private field _pin should be public.
B. The set accessor should return a value.
C. The property has both get and set accessors, so it is not write-only.
D. The property should be static.
Solution
Step 1: Check property accessors
The property has both get and set accessors, allowing reading and writing.
Step 2: Understand write-only requirement
Write-only properties must have only a set accessor and no get accessor.
Final Answer:
The property has both get and set accessors, so it is not write-only. -> Option C
Quick Check:
Write-only = set only, no get [OK]
Hint: Write-only means no get accessor allowed [OK]
Common Mistakes:
Leaving both get and set for write-only
Changing field visibility instead of property
Expecting set to return a value
5.
You want to create a class Secret that stores a string value. The value should be settable but never readable from outside the class. Inside the class, you want to log the value whenever it is set. Which property implementation achieves this?
hard
A. public string Data { set { Console.WriteLine(value); _data = value; } }
B. public string Data { get { return _data; } private set { _data = value; } }
C. public string Data { get; set; }
D. public string Data { private get; set { Console.WriteLine(value); _data = value; } }
Solution
Step 1: Identify write-only property with logging
The property must have only a set accessor to be write-only and log the value when set.
Step 2: Check each option
public string Data { set { Console.WriteLine(value); _data = value; } } has only a set accessor that logs and assigns the value, matching requirements.
Final Answer:
public string Data { set { Console.WriteLine(value); _data = value; } } -> Option A
Quick Check:
Write-only with logging in set accessor [OK]
Hint: Write-only property has only set accessor with logging code [OK]