Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Constructors and initialization in C Sharp (C#) - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

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
Concept Flow - Constructors and initialization
Create Object
Call Constructor
Initialize Fields
Execute Constructor Body
Object Ready to Use
When you create an object, the constructor runs first to set up initial values before you use the object.
Execution Sample
C Sharp (C#)
class Person {
  public string Name;
  public Person(string name) {
    Name = name;
  }
}

var p = new Person("Anna");
This code creates a Person object and sets its Name using the constructor.
Execution Table
StepActionField 'Name' ValueNotes
1Start creating Person objectnullObject memory allocated, fields default to null
2Call constructor with argument "Anna"nullConstructor starts, field not set yet
3Assign Name = "Anna""Anna"Field initialized inside constructor
4Constructor ends"Anna"Object fully initialized and ready
5Object p created with Name = "Anna""Anna"Usage can start now
💡 Constructor finished, object initialized with Name = "Anna"
Variable Tracker
VariableStartAfter Step 3Final
Namenull"Anna""Anna"
Key Moments - 2 Insights
Why is the field 'Name' null before the constructor runs?
Before the constructor runs (see Step 1 and 2 in execution_table), fields have default values (null for strings). The constructor sets the actual value.
What happens if you don't assign the field inside the constructor?
If you skip assignment (Step 3), the field stays at its default (null), so the object won't have the expected initial value.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'Name' at Step 2?
Aempty string ""
Bnull
C"Anna"
Dundefined
💡 Hint
Check the 'Field Name Value' column at Step 2 in the execution_table
At which step does the 'Name' field get its value assigned?
AStep 3
BStep 1
CStep 4
DStep 5
💡 Hint
Look for the assignment action in the 'Action' column in execution_table
If the constructor did not assign 'Name', what would be the final value?
Aempty string ""
B"Anna"
Cnull
Dthrows error
💡 Hint
Refer to variable_tracker showing default values before assignment
Concept Snapshot
Constructors are special methods called when creating an object.
They initialize fields to set starting values.
Syntax: public ClassName(parameters) { ... }
Without constructor assignment, fields keep default values.
Constructor runs automatically on 'new' keyword.
Use constructors to prepare objects before use.
Full Transcript
When you create an object in C#, the constructor runs automatically. It sets initial values for the object's fields. For example, in the Person class, the constructor takes a name and assigns it to the Name field. Before the constructor runs, fields like Name are null by default. The constructor changes this by assigning the passed value. This process ensures the object is ready to use right after creation. If you don't assign fields in the constructor, they remain at default values, which might not be what you want. The execution table shows each step: starting with null, then assigning "Anna", and finally having the object fully initialized.

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

  1. Step 1: Understand what constructors do

    Constructors are special methods that run when an object is created to set initial values.
  2. 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.
  3. Final Answer:

    To initialize new objects with starting values -> Option C
  4. 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

  1. 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.
  2. Step 2: Check each option

    public Car() { } matches: public + class name + parentheses + no return type. Others have void return or wrong syntax.
  3. Final Answer:

    public Car() { } -> Option A
  4. 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

  1. Step 1: Understand constructor usage

    The constructor sets the Name field to the passed string "Anna" when creating the Person object.
  2. Step 2: Check output of Console.WriteLine

    Since p.Name was set to "Anna", printing p.Name outputs "Anna".
  3. Final Answer:

    Anna -> Option B
  4. 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

  1. 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.
  2. Step 2: Correct the assignment direction

    It should assign the field Title to the parameter value: Title = title; to initialize properly.
  3. Final Answer:

    The assignment is reversed; should be Title = title; -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    1,1 5,5 -> Option A
  4. Quick Check:

    Overloaded constructors set different sizes correctly [OK]
Hint: Overloaded constructors run based on arguments [OK]
Common Mistakes:
  • Assuming default values are zero
  • Thinking constructor overload causes error
  • Mixing up which constructor runs