Top-level statements let you write simple C# programs without needing to write extra code like class or Main method. It makes your code shorter and easier to read.
When you want to quickly test a small piece of code without boilerplate.
When writing simple console apps or scripts.
When teaching beginners to focus on logic, not structure.
When creating quick prototypes or demos.
When you want cleaner code for small programs.
Syntax
C Sharp (C#)
using System;
Console.WriteLine("Hello, world!");
You do not need to write a class or Main method.
The compiler automatically creates the Main method behind the scenes.
Examples
A simple program that prints a message without any class or method.
C Sharp (C#)
Console.WriteLine("Welcome to C# top-level statements!");
You can declare variables and use them directly at the top level.
C Sharp (C#)
int x = 5;
int y = 10;
Console.WriteLine($"Sum is {x + y}");
You can include using directives at the top before statements.
C Sharp (C#)
using System;
var now = DateTime.Now;
Console.WriteLine($"Current time: {now}");
Sample Program
This program asks for your name and then greets you. It uses top-level statements so no class or Main method is needed.
C Sharp (C#)
using System;
Console.WriteLine("Enter your name:");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");
OutputSuccess
Important Notes
Top-level statements are supported starting from C# 9.0 and later.
You can still use classes and methods if your program grows bigger.
Only one file in the project can have top-level statements.
Summary
Top-level statements simplify small C# programs by removing boilerplate.
They let you write code directly without class or Main method.
Great for beginners, quick tests, and simple apps.
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.