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 static member in C#?
A static member belongs to the class itself, not to any specific object. It can be accessed without creating an instance of the class.
Click to reveal answer
beginner
What is an instance member in C#?
An instance member belongs to a specific object created from a class. You need to create an object to access instance members.
Click to reveal answer
intermediate
Can static members access instance members directly? Why or why not?
No, static members cannot access instance members directly because instance members belong to objects, and static members belong to the class itself without any object context.
Click to reveal answer
beginner
How do you call a static method and an instance method in C#?
You call a static method using the class name (e.g., ClassName.Method()), and you call an instance method using an object of the class (e.g., objectName.Method()).
Click to reveal answer
beginner
Example: What will this code print?
<pre>class Car {
public static int wheels = 4;
public string color;
public Car(string c) { color = c; }
}
Console.WriteLine(Car.wheels);
Car myCar = new Car("red");
Console.WriteLine(myCar.color);</pre>
It will print:
4
red
Because 'wheels' is static and accessed by class name, and 'color' is instance and accessed by object.
Click to reveal answer
Which of these belongs to the class itself, not to any object?
AParameter
BStatic member
CLocal variable
DInstance member
✗ Incorrect
Static members belong to the class itself and can be accessed without creating an object.
How do you access an instance member in C#?
AUsing the class name
BDirectly without any reference
CUsing an object of the class
DUsing the static keyword
✗ Incorrect
Instance members require an object to be accessed because they belong to that specific object.
Can a static method access instance variables directly?
AYes, always
BOnly inside constructors
COnly if the instance variables are public
DNo, because instance variables belong to objects
✗ Incorrect
Static methods do not have access to instance variables because they do not belong to any object.
What keyword is used to declare a static member in C#?
Astatic
Binstance
Cconst
Dreadonly
✗ Incorrect
The 'static' keyword declares a member that belongs to the class itself.
If you want a property shared by all objects of a class, which should you use?
AStatic member
BInstance member
CLocal variable
DParameter
✗ Incorrect
Static members are shared across all instances of the class.
Explain the difference between static members and instance members in your own words.
Think about whether you need to create an object to use the member.
You got /4 concepts.
Describe a real-life example where you would use a static member versus an instance member.
Imagine a car factory: number of wheels is same for all cars, color is different per car.
You got /4 concepts.
Practice
(1/5)
1. Which statement correctly describes a static member in C#?
easy
A. It belongs to the class and is shared by all instances.
B. It belongs to each object and stores unique data.
C. It can only be accessed through an object instance.
D. It is created every time a new object is instantiated.
Solution
Step 1: Understand static member concept
Static members belong to the class itself, not to any individual object.
Step 2: Compare with instance members
Instance members belong to objects and hold unique data per object, unlike static members.
Final Answer:
It belongs to the class and is shared by all instances. -> Option A
Quick Check:
Static member = shared by class [OK]
Hint: Static = shared by class, instance = unique per object [OK]
Common Mistakes:
Confusing static with instance members
Thinking static members are unique per object
Believing static members require object to access
2. Which of the following is the correct way to declare a static field in a C# class?
easy
A. public static int count;
B. public int static count;
C. public int count;
D. int static public count;
Solution
Step 1: Recall C# static field syntax
The correct order is access modifier, then 'static', then type and name.
Step 2: Check each option
public static int count; matches the correct syntax: 'public static int count;'. Others have wrong order or missing keywords.
Final Answer:
public static int count; -> Option A
Quick Check:
Access modifier + static + type + name [OK]
Hint: Use 'public static' before type for static fields [OK]
Common Mistakes:
Placing 'static' after the type
Omitting 'static' keyword
Incorrect order of keywords
3. What will be the output of the following C# code?
class Counter {
public static int count = 0;
public Counter() {
count++;
}
}
class Program {
static void Main() {
Counter c1 = new Counter();
Counter c2 = new Counter();
Console.WriteLine(Counter.count);
}
}
medium
A. 0
B. 2
C. 1
D. Compilation error
Solution
Step 1: Understand static field behavior
The static field 'count' is shared by all instances and starts at 0.
Step 2: Trace constructor calls
Each new Counter() increments 'count' by 1. Two objects created, so count becomes 2.
Final Answer:
2 -> Option B
Quick Check:
Static count increments twice = 2 [OK]
Hint: Static fields keep shared state across all objects [OK]
Common Mistakes:
Thinking count resets per object
Confusing instance and static fields
Expecting compilation error due to static access
4. Identify the error in this C# code snippet:
class Example {
public static int value = 10;
public int GetValue() {
return value;
}
}
medium
A. Cannot access static field 'value' inside instance method.
B. Method GetValue must be static to access static field 'value'.
C. Static field 'value' must be private.
D. No error; code compiles and runs correctly.
Solution
Step 1: Check static field access rules
Instance methods can access static fields directly without error.
Step 2: Verify code correctness
Method GetValue returns static field 'value' correctly; no syntax or access errors.
Final Answer:
No error; code compiles and runs correctly. -> Option D
Quick Check:
Instance method can access static field [OK]
Hint: Instance methods can access static fields directly [OK]
5. You want to count how many objects of a class are created, but also keep a unique ID for each object starting from 1. Which approach correctly uses static and instance members?
hard
A. Use only instance fields for both counter and ID.
B. Use an instance counter incremented in constructor; assign its value to a static ID field.
C. Use a static counter incremented in constructor; assign its value to an instance ID field.
D. Use static fields for both counter and ID without instance fields.
Solution
Step 1: Understand counting objects with static field
A static counter shared by all objects can track total created objects.
Step 2: Assign unique ID per object using instance field
Each object gets its own instance ID assigned from the static counter value.
Final Answer:
Use a static counter incremented in constructor; assign its value to an instance ID field. -> Option C
Quick Check:
Static counter + instance ID = unique IDs [OK]
Hint: Static counts total; instance stores unique ID per object [OK]