We use new to create a fresh copy of a class so we can use it in our program. It helps us make real things from blueprints.
When you want to create a new person in a game with their own name and score.
When you need a new car object to keep track of its speed and color.
When you want to make a new bank account with its own balance.
When you want to create multiple objects that behave independently.
Syntax
C Sharp (C#)
ClassName variableName = new ClassName();
The new keyword tells the computer to make a new object.
You usually put parentheses () after the class name to call its constructor.
Examples
This creates a new Person object and stores it in variable p.
C Sharp (C#)
Person p = new Person();
This makes a new Car object called myCar.
C Sharp (C#)
Car myCar = new Car();
This creates a new BankAccount object named account.
C Sharp (C#)
BankAccount account = new BankAccount();
Sample Program
This program creates a new Person object named p. It sets the name and age, then prints an introduction.
C Sharp (C#)
using System;
class Person
{
public string Name;
publicint Age;
public Person()
{
Name = "Unknown";
Age = 0;
}
publicvoid Introduce()
{
Console.WriteLine($"Hi, my name is {Name} and I am {Age} years old.");
}
}
class Program
{
staticvoid Main()
{
Person p = new Person();
p.Name = "Alice";
p.Age = 30;
p.Introduce();
}
}
OutputSuccess
Important Notes
Every time you use new, you get a separate object with its own data.
If you forget new, you only have a reference, not an actual object.
Summary
new creates a new object from a class blueprint.
Use it when you want to work with fresh, independent objects.
Remember to call the constructor with parentheses ().
Practice
(1/5)
1. What does the new keyword do in C# when used like new MyClass()?
easy
A. It calls a static method of MyClass.
B. It deletes an existing object of MyClass.
C. It converts MyClass to a string.
D. It creates a new object instance of the class MyClass.
Solution
Step 1: Understand the role of new
The new keyword in C# is used to create a fresh object from a class blueprint.
Step 2: Apply to the example new MyClass()
This expression creates a new instance of the class MyClass by calling its constructor.
Final Answer:
It creates a new object instance of the class MyClass. -> Option D
Quick Check:
new creates object = C [OK]
Hint: Remember: new means create a fresh object [OK]
Common Mistakes:
Thinking new deletes or modifies existing objects
Confusing new with method calls
Forgetting parentheses after class name
2. Which of the following is the correct syntax to create a new object of class Person?
easy
A. Person p = new Person;
B. Person p = Person.new();
C. Person p = new Person();
D. Person p = Person();
Solution
Step 1: Check correct use of new keyword and parentheses
In C#, to create a new object, you must use new ClassName() with parentheses.
Step 2: Analyze each option
Person p = new Person(); uses new Person(); correctly. Person p = Person.new(); uses wrong syntax with dot notation. Person p = new Person; misses parentheses. Person p = Person(); misses new.
Final Answer:
Person p = new Person(); -> Option C
Quick Check:
Correct syntax = A [OK]
Hint: Always use new ClassName() with parentheses [OK]
Common Mistakes:
Omitting parentheses after class name
Using dot notation with new
Forgetting the new keyword
3. What will be the output of this code?
class Box {
public int size;
public Box(int s) { size = s; }
}
var b = new Box(5);
Console.WriteLine(b.size);
medium
A. 5
B. 0
C. null
D. Compilation error
Solution
Step 1: Understand the constructor call
The constructor Box(int s) sets the field size to the passed value s. Here, new Box(5) sets size = 5.
Step 2: Check the output of Console.WriteLine(b.size)
This prints the value of b.size, which was set to 5 by the constructor.
Final Answer:
5 -> Option A
Quick Check:
Constructor sets size = 5 [OK]
Hint: Constructor sets values; output shows assigned value [OK]
Common Mistakes:
Assuming default 0 instead of constructor value
Confusing null with int fields
Thinking code won't compile
4. Identify the error in this code snippet:
class Car {
public string model;
public Car(string m) { model = m; }
}
Car c = new Car;
medium
A. Class Car has no constructor defined.
B. Missing parentheses after Car in object creation.
C. model field is not initialized.
D. Cannot assign new Car to variable c.
Solution
Step 1: Check object instantiation syntax
In C#, when creating a new object, parentheses must follow the class name even if no arguments are passed.
Step 2: Analyze the code snippet
The code uses new Car; without parentheses, which causes a syntax error.
Final Answer:
Missing parentheses after Car in object creation. -> Option B
Quick Check:
new requires parentheses () [OK]
Hint: Always add () after new ClassName [OK]
Common Mistakes:
Omitting parentheses after new keyword
Assuming default constructor exists without parentheses
Ignoring compiler error messages
5. You want to create two independent objects of class Student with different names. Which code correctly does this?
hard
A. Student s1 = new Student("Alice"); Student s2 = new Student("Bob");
B. Student s1 = Student("Alice"); Student s2 = Student("Bob");
C. Student s1, s2 = new Student("Alice"), new Student("Bob");
D. Student s1 = new Student; Student s2 = new Student;
Solution
Step 1: Understand object creation with parameters
To create objects with different names, call the constructor with the name string for each object separately using new Student(name).
Step 2: Analyze each option
Student s1 = new Student("Alice"); Student s2 = new Student("Bob"); correctly creates two objects with different names. Student s1 = Student("Alice"); Student s2 = Student("Bob"); misses new. Student s1, s2 = new Student("Alice"), new Student("Bob"); has invalid syntax for multiple declarations. Student s1 = new Student; Student s2 = new Student; misses parentheses and parameters.
Final Answer:
Student s1 = new Student("Alice"); Student s2 = new Student("Bob"); -> Option A
Quick Check:
Use new with constructor for each object [OK]
Hint: Create each object with new and constructor call [OK]
Common Mistakes:
Forgetting new keyword
Trying to create multiple objects in one line incorrectly
Omitting constructor parameters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.