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
Constructors and Initialization in C#
📖 Scenario: You are creating a simple program to manage information about books in a library. Each book has a title and an author.
🎯 Goal: Build a Book class with a constructor that initializes the title and author. Then create an instance of Book and display its details.
📋 What You'll Learn
Create a class named Book with two string fields: Title and Author.
Add a constructor to Book that takes two string parameters: title and author.
Inside the constructor, initialize the fields Title and Author with the parameters.
Create an instance of Book named myBook with title "The Hobbit" and author "J.R.R. Tolkien".
Print the book details in the format: "Title: The Hobbit, Author: J.R.R. Tolkien".
💡 Why This Matters
🌍 Real World
Constructors are used in real-world programs to create objects with initial values, like creating user profiles, products, or records.
💼 Career
Understanding constructors is essential for software development jobs because it helps you build reusable and organized code with proper object initialization.
Progress0 / 4 steps
1
Create the Book class with fields
Create a class called Book with two public string fields: Title and Author.
C Sharp (C#)
Hint
Use public string Title; and public string Author; inside the class.
2
Add a constructor to initialize fields
Add a constructor to the Book class with parameters string title and string author. Inside the constructor, set Title = title and Author = author.
C Sharp (C#)
Hint
Constructor name must match the class name Book. Assign parameters to fields inside the constructor.
3
Create an instance of Book
Create an instance of Book named myBook using the constructor with title "The Hobbit" and author "J.R.R. Tolkien".
C Sharp (C#)
Hint
Use new Book("The Hobbit", "J.R.R. Tolkien") to create the instance.
4
Print the book details
Print the details of myBook in the format: "Title: The Hobbit, Author: J.R.R. Tolkien" using Console.WriteLine and string interpolation.
C Sharp (C#)
Hint
Use Console.WriteLine($"Title: {myBook.Title}, Author: {myBook.Author}") to print.
Practice
(1/5)
1. What is the main purpose of a constructor in a C# class?
easy
A. To define methods that return values
B. To declare variables inside a class
C. To initialize new objects with starting values
D. To inherit properties from another class
Solution
Step 1: Understand what constructors do
Constructors are special methods that run when an object is created to set initial values.
Step 2: Compare options with constructor purpose
Only To initialize new objects with starting values describes initializing new objects, which matches the constructor's role.
Final Answer:
To initialize new objects with starting values -> Option C
Quick Check:
Constructor purpose = initialize objects [OK]
Hint: Constructors set initial values when creating objects [OK]
Common Mistakes:
Confusing constructors with regular methods
Thinking constructors return values
Mixing constructors with inheritance
2. Which of the following is the correct syntax for a constructor in C# for a class named Car?
easy
A. public Car() { }
B. void Car() { }
C. public void Car() { }
D. public Car(void) { }
Solution
Step 1: Recall constructor syntax rules
Constructors have the same name as the class and no return type, but must have an access modifier like public.
Step 2: Check each option
public Car() { } matches: public + class name + parentheses + no return type. Others have void return or wrong syntax.
Final Answer:
public Car() { } -> Option A
Quick Check:
Constructor syntax = public ClassName() [OK]
Hint: Constructor name = class name, no return type [OK]
Common Mistakes:
Adding a return type like void
Using incorrect parameter syntax
Omitting access modifier
3. What will be the output of the following C# code?
class Person {
public string Name;
public Person(string name) {
Name = name;
}
}
var p = new Person("Anna");
Console.WriteLine(p.Name);
medium
A. Compilation error
B. Anna
C. null
D. Name
Solution
Step 1: Understand constructor usage
The constructor sets the Name field to the passed string "Anna" when creating the Person object.
Step 2: Check output of Console.WriteLine
Since p.Name was set to "Anna", printing p.Name outputs "Anna".
Final Answer:
Anna -> Option B
Quick Check:
Constructor sets Name = "Anna" so output = Anna [OK]
Hint: Constructor sets fields; output shows assigned value [OK]
Common Mistakes:
Assuming default null value instead of assigned
Confusing field name with value
Expecting compilation error due to constructor
4. Identify the error in this C# class constructor and how to fix it:
class Book {
public string Title;
public Book(string title) {
title = Title;
}
}
medium
A. Title should be private, not public
B. Constructor name should be lowercase book
C. Missing return type void in constructor
D. The assignment is reversed; should be Title = title;
Solution
Step 1: Analyze the assignment inside constructor
The code assigns title = Title, which sets the parameter to the field's value, not the other way around.
Step 2: Correct the assignment direction
It should assign the field Title to the parameter value: Title = title; to initialize properly.
Final Answer:
The assignment is reversed; should be Title = title; -> Option D
Quick Check:
Field = parameter to initialize correctly [OK]
Hint: Assign field = parameter inside constructor [OK]
Common Mistakes:
Reversing assignment direction
Changing constructor name incorrectly
Adding return type to constructor
5. Given this class with two constructors:
class Rectangle {
public int Width, Height;
public Rectangle() {
Width = 1;
Height = 1;
}
public Rectangle(int size) {
Width = size;
Height = size;
}
}
var r1 = new Rectangle();
var r2 = new Rectangle(5);
Console.WriteLine(r1.Width + "," + r1.Height);
Console.WriteLine(r2.Width + "," + r2.Height);
What is the output?
hard
A. 1,1
5,5
B. 0,0
5,5
C. 1,1
1,1
D. Compilation error due to constructor overload
Solution
Step 1: Understand constructor overloading
The class has two constructors: one with no parameters sets Width and Height to 1; the other sets both to the given size.
Step 2: Trace object creation and output
r1 uses the no-parameter constructor, so Width=1, Height=1. r2 uses the int parameter constructor with 5, so Width=5, Height=5.
Final Answer:
1,1
5,5 -> Option A
Quick Check:
Overloaded constructors set different sizes correctly [OK]
Hint: Overloaded constructors run based on arguments [OK]