Tutorial: Create a .NET console application using Visual Studio for Mac
This tutorial shows how to create and run a .NET console application using Visual Studio for Mac.
Important
Microsoft has announced the retirement of Visual Studio for Mac. Visual Studio for Mac will no longer be supported starting August 31, 2024. Alternatives include:
- Visual Studio Code with the C# Dev Kit and related extensions, such as .NET MAUI and Unity.
- Visual Studio running on Windows in a VM on Mac.
- Visual Studio running on Windows in a VM in the Cloud.
For more information, see Visual Studio for Mac retirement announcement.
Prerequisites
Visual Studio for Mac version 8.8 or later. Select the option to install .NET Core. Installing Xamarin is optional for .NET development. For more information, see the following resources:
Create the app
Start Visual Studio for Mac.
Select New in the start window.
In the New Project dialog, select App under the Web and Console node. Select the Console Application template, and select Next.
In the Target Framework drop-down of the Configure your new Console Application dialog, select .NET 5.0, and select Next.
Type "HelloWorld" for the Project Name, and select Create.
The template creates a simple "Hello World" application. It calls the Console.WriteLine(String) method to display "Hello World!" in the terminal window.
The template code defines a class, Program
, with a single method, Main
, that takes a String array as an argument:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Main
is the application entry point, the method that's called automatically by the runtime when it launches the application. Any command-line arguments supplied when the application is launched are available in the args
array.
Run the app
Press ⌥⌘↵ (option+command+enter) to run the app without debugging.
Close the Terminal window.
Enhance the app
Enhance the application to prompt the user for their name and display it along with the date and time.
In Program.cs, replace the contents of the
Main
method, which is the line that callsConsole.WriteLine
, with the following code:Console.WriteLine("What is your name?"); var name = Console.ReadLine(); var currentDate = DateTime.Now; Console.WriteLine($"{Environment.NewLine}Hello, {name}, on {currentDate:d} at {currentDate:t}!"); Console.Write($"{Environment.NewLine}Press any key to exit..."); Console.ReadKey(true);
This code displays a prompt in the console window and waits until the user enters a string followed by the enter key. It stores this string in a variable named
name
. It also retrieves the value of the DateTime.Now property, which contains the current local time, and assigns it to a variable namedcurrentDate
. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the Console.ReadKey(Boolean) method to wait for user input.NewLine is a platform-independent and language-independent way to represent a line break. Alternatives are
\n
in C# andvbCrLf
in Visual Basic.The dollar sign (
$
) in front of a string lets you put expressions such as variable names in curly braces in the string. The expression value is inserted into the string in place of the expression. This syntax is referred to as interpolated strings.Press ⌥⌘↵ (option+command+enter) to run the app.
Respond to the prompt by entering a name and pressing enter.
Close the terminal.
Next steps
In this tutorial, you created a .NET console application. In the next tutorial, you debug the app.