© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•8mo ago•
25 replies
WaterCat

Top Level Statements Issue

Heyo, I was following along with a friend making a small console app, but ran into some issues cause the version i was using had top level statements while they were coding on was pre 6.0


This was where I stopped at first
// See https://aka.ms/new-console-template for more information

using System.Security.AccessControl;
using Bank_App;

private static List<Account> accounts = new List<Account>();

bool isAppRunning = true;

while (isAppRunning)
{
    DisplayMenu();
    
    int choice = GetChoice();

    switch (choice)
    {
        case 1:
            AddAccount();
            break;
        case 2:
        case 3:
        case 4:
        case 5:
            Console.WriteLine("Exiting App");
            isAppRunning = false;
            break;
       default:
           Console.WriteLine("Invalid Choice");
           break;
    }
}


static void DisplayMenu()
{
    Console.Clear();
    Console.WriteLine("MENU");
    Console.WriteLine("-------");
    Console.WriteLine("1. Add Account ");
    Console.WriteLine("2. View All Accounts");
    Console.WriteLine("3. Deposit ");
    Console.WriteLine("4. Withdraw ");
    Console.WriteLine("5. Exit ");
}

static int GetChoice()
{
    Console.WriteLine("Choose an option: ");
    int choice;

    while (!int.TryParse(Console.ReadLine(), out choice) || choice < 1 || choice > 5)
    {
        Console.WriteLine("Please enter a valid choice.");
    }
    return choice;
}

static void AddAccount()
{
    Console.Clear();
    Console.WriteLine("Enter Account Holder Name: ");
    string name = Console.ReadLine();

    int accountNumber = accounts.Count + 1;
    Account newAccount = new Account(accountNumber, name);
    accounts.Add(newAccount);
   
   Console.WriteLine($"A new account has been created for {name} with the account number {accountNumber}");
   Console.WriteLine("Press any key to continue...");
   Console.ReadKey();
}
// See https://aka.ms/new-console-template for more information

using System.Security.AccessControl;
using Bank_App;

private static List<Account> accounts = new List<Account>();

bool isAppRunning = true;

while (isAppRunning)
{
    DisplayMenu();
    
    int choice = GetChoice();

    switch (choice)
    {
        case 1:
            AddAccount();
            break;
        case 2:
        case 3:
        case 4:
        case 5:
            Console.WriteLine("Exiting App");
            isAppRunning = false;
            break;
       default:
           Console.WriteLine("Invalid Choice");
           break;
    }
}


static void DisplayMenu()
{
    Console.Clear();
    Console.WriteLine("MENU");
    Console.WriteLine("-------");
    Console.WriteLine("1. Add Account ");
    Console.WriteLine("2. View All Accounts");
    Console.WriteLine("3. Deposit ");
    Console.WriteLine("4. Withdraw ");
    Console.WriteLine("5. Exit ");
}

static int GetChoice()
{
    Console.WriteLine("Choose an option: ");
    int choice;

    while (!int.TryParse(Console.ReadLine(), out choice) || choice < 1 || choice > 5)
    {
        Console.WriteLine("Please enter a valid choice.");
    }
    return choice;
}

static void AddAccount()
{
    Console.Clear();
    Console.WriteLine("Enter Account Holder Name: ");
    string name = Console.ReadLine();

    int accountNumber = accounts.Count + 1;
    Account newAccount = new Account(accountNumber, name);
    accounts.Add(newAccount);
   
   Console.WriteLine($"A new account has been created for {name} with the account number {accountNumber}");
   Console.WriteLine("Press any key to continue...");
   Console.ReadKey();
}

APP.cs(6, 30): [CS0116] A namespace cannot directly contain members such as fields, methods or statements
Was the error I got.

Any chance someone can explain what exactly went wrong. I still dont fully understand how top level statements work and would like to deal with it because most tutorials were made before it was introduced

This was what I eventually got after switching to TLS
message.txt5.97KB
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

❔ top level statements
C#CC# / help
3y ago
Top-level statements in MSVS
C#CC# / help
4y ago
❔ Disabling Top level statements in VSCode
C#CC# / help
3y ago
❔ Top-level statements VS old way
C#CC# / help
3y ago