📖 Scenario: You are creating a simple console program to greet users by name. Modern C# allows writing code without explicitly defining a class or a Main method. This makes your program shorter and easier to read.
🎯 Goal: Build a small C# program using top-level statements that asks for the user's name and then greets them with a personalized message.
📋 What You'll Learn
Use top-level statements without defining a class or Main method
Read user input from the console
Print a greeting message including the user's name
💡 Why This Matters
🌍 Real World
Top-level statements simplify small C# programs, scripts, and quick tests by removing boilerplate code.
💼 Career
Understanding top-level statements helps you write cleaner, modern C# code used in many professional projects and interviews.
Progress0 / 4 steps
1
Create a variable to store the user's name
Write a line of code to declare a variable called name and assign it the value returned by Console.ReadLine().
C Sharp (C#)
Hint
Use string? name = Console.ReadLine(); to read input from the user.
2
Add a greeting message prefix
Create a variable called greeting and assign it the string "Hello".
C Sharp (C#)
Hint
Use string greeting = "Hello"; to store the greeting word.
3
Combine greeting and name into a message
Create a variable called message and assign it the value of $"{greeting}, {name}!" using string interpolation.
C Sharp (C#)
Hint
Use string message = $"{greeting}, {name}!"; to create the full greeting.
4
Print the greeting message
Write a line of code to print the message variable to the console using Console.WriteLine().
C Sharp (C#)
Hint
Use Console.WriteLine(message); to display the greeting.
Practice
(1/5)
1. What is the main benefit of using top-level statements in modern C#?
easy
A. It only works for console applications with multiple classes.
B. You must always define a Main method to run the program.
C. It requires more boilerplate code than traditional C# programs.
D. You can write code without explicitly defining a class or Main method.
Solution
Step 1: Understand top-level statements purpose
Top-level statements allow writing code directly without wrapping it inside a class or Main method.
Step 2: Compare options with this feature
You can write code without explicitly defining a class or Main method. correctly states this benefit, while others contradict it or add incorrect restrictions.
Final Answer:
You can write code without explicitly defining a class or Main method. -> Option D
Quick Check:
Top-level statements remove boilerplate = A [OK]
Hint: Top-level means no class or Main method needed [OK]
Common Mistakes:
Thinking Main method is still required
Believing top-level statements add more code
Assuming it only works for complex apps
2. Which of the following is the correct way to write a top-level statement program that prints "Hello, World!"?
easy
A. Console.WriteLine("Hello, World!");
B. public static void Main() { Console.WriteLine("Hello, World!"); }
C. class Program { static void Main() { Console.WriteLine("Hello, World!"); } }
D. void Main() { Console.WriteLine("Hello, World!"); }
Solution
Step 1: Identify top-level statement syntax
Top-level statements allow writing code directly without class or method wrappers.
Step 2: Check each option
Console.WriteLine("Hello, World!"); is direct code printing the message, valid as a top-level statement. Others require class or method definitions.
Final Answer:
Console.WriteLine("Hello, World!"); -> Option A
Quick Check:
Direct code without class = C [OK]
Hint: Top-level means just write code directly, no class needed [OK]
Common Mistakes:
Adding class or Main method unnecessarily
Using incorrect method signatures
Forgetting to call Console.WriteLine properly
3. What will be the output of this C# program using top-level statements?
int x = 5;
int y = 10;
Console.WriteLine(x + y);
medium
A. Compilation error
B. 15
C. x + y
D. 510
Solution
Step 1: Understand variable initialization and addition
Variables x and y are integers with values 5 and 10. Adding them gives 15.
Step 2: Check Console.WriteLine output
Console.WriteLine prints the sum of x and y, which is 15, not concatenation or error.
Final Answer:
15 -> Option B
Quick Check:
5 + 10 = 15 [OK]
Hint: Adding integers prints sum, not concatenation [OK]
Common Mistakes:
Thinking integers concatenate as strings
Expecting variable names printed
Assuming top-level causes errors
4. Identify the error in this top-level statement C# code:
int number = 10
Console.WriteLine(number);
medium
A. Missing semicolon after variable declaration.
B. Cannot declare variables in top-level statements.
C. Console.WriteLine is not allowed in top-level statements.
D. Variable 'number' must be declared inside a method.
Solution
Step 1: Check syntax of variable declaration
The line 'int number = 10' is missing a semicolon at the end, which is required in C#.
Step 2: Verify top-level statement rules
Variables can be declared and Console.WriteLine used directly in top-level statements, so other options are incorrect.
Final Answer:
Missing semicolon after variable declaration. -> Option A
Quick Check:
Every statement needs semicolon [OK]
Hint: Check for missing semicolons in statements [OK]
Common Mistakes:
Thinking variables can't be declared top-level
Assuming Console.WriteLine is disallowed
Forgetting semicolon ends statements
5. You want to write a simple C# program using top-level statements that reads a number from the user, doubles it, and prints the result. Which code snippet correctly does this?
hard
A. class Program {
static void Main() {
Console.WriteLine("Enter a number:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine(num * 2);
}
}
B. Console.WriteLine("Enter a number:");
var num = Console.ReadLine();
Console.WriteLine(num * 2);
C. Console.WriteLine("Enter a number:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine(num * 2);
D. int num = Console.ReadLine();
Console.WriteLine(num * 2);
Solution
Step 1: Check input reading and parsing
Console.WriteLine("Enter a number:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine(num * 2); reads input as string, parses to int, then doubles it correctly.
Step 2: Verify top-level usage and output
Console.WriteLine("Enter a number:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine(num * 2); uses top-level statements correctly without class or Main method, and prints the doubled value.
Final Answer:
Console.WriteLine("Enter a number:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine(num * 2); -> Option C
Quick Check:
Parse input to int before math [OK]
Hint: Parse input string to int before math [OK]
Common Mistakes:
Not parsing input string to int
Using class and Main when top-level allowed
Assigning Console.ReadLine() directly to int
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.