C# Language Getting started with C# Language

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Insert
> Step 2: And Like the video. BONUS: You can also share it!

Remarks

C# is a multi-paradigm, C-descendant programming language from Microsoft. C# is a managed language that compiles to CIL, intermediate bytecode which can be executed on Windows, Mac OS X and Linux.

Versions 1.0, 2.0 and 5.0 were standardized by ECMA (as ECMA-334), and standardization efforts for modern C# are underway.

Versions

VersionRelease Date
1.02002-01-01
1.22003-04-01
2.02005-09-01
3.02007-08-01
4.02010-04-01
5.02013-06-01
6.02015-07-01
7.02017-03-07

Creating a new console application (Visual Studio)

  1. Open Visual Studio
  2. In the toolbar, go to FileNew Project
  3. Select the Console Application project type
  4. Open the file Program.cs in the Solution Explorer
  5. Add the following code to Main() :
public class Program
{
    public static void Main()
    {
        // Prints a message to the console.
        System.Console.WriteLine("Hello, World!");

        /* Wait for the user to press a key. This is a common
           way to prevent the console window from terminating
           and disappearing before the programmer can see the contents
           of the window, when the application is run via Start from within VS. */
        System.Console.ReadKey();
    }
}
 
  1. In the toolbar, click Debug -> Start Debugging or hit F5 or ctrl + F5 (running without debugger) to run the program.

Live Demo on ideone


Explanation

  • class Program is a class declaration. The class Program contains the data and method definitions that your program uses. Classes generally contain multiple methods. Methods define the behavior of the class. However, the Program class has only one method: Main .

  • static void Main() defines the Main method, which is the entry point for all C# programs. The Main method states what the class does when executed. Only one Main method is allowed per class.

  • System.Console.WriteLine("Hello, world!"); method prints a given data (in this example, Hello, world! ) as an output in the console window.

  • System.Console.ReadKey() , ensures that the program won't close immediately after displaying the message. It does this by waiting for the user to press a key on the keyboard. Any key press from the user will terminate the program. The program terminates when it has finished the last line of code in the main() method.


Using the command line

To compile via command line use either MSBuild or csc.exe (the C# compiler), both part of the Microsoft Build Tools package.

To compile this example, run the following command in the same directory where HelloWorld.cs is located:

%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe HelloWorld.cs
 

It can also be possible that you have two main methods inside one application. In this case, you have to tell the compiler which main method to execute by typing the following command in the console.(suppose Class ClassA also has a main method in the same HelloWorld.cs file in HelloWorld namespace)

%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe HelloWorld.cs /main:HelloWorld.ClassA 
 

where HelloWorld is namespace

Note: This is the path where .NET framework v4.0 is located in general. Change the path according to your .NET version. In addition, the directory might be framework instead of framework64 if you're using the 32-bit .NET Framework. From the Windows Command Prompt, you can list all the csc.exe Framework paths by running the following commands (the first for 32-bit Frameworks):

dir %WINDIR%\Microsoft.NET\Framework\csc.exe /s/b
dir %WINDIR%\Microsoft.NET\Framework64\csc.exe /s/b
 

Compiling the .cs file

There should now be an executable file named HelloWorld.exe in the same directory. To execute the program from the command prompt, simply type the executable's name and hit Enter as follows:

HelloWorld.exe
 

This will produce:

Hello, world!

Executing the exe file in the console

You may also double click the executable and launch a new console window with the message "Hello, world!"

Running the executable and using double click

Creating a new program using .NET Core

First install the .NET Core SDK by going through the installation instructions for the platform of your choice:

After the installation has completed, open a command prompt, or terminal window.

  1. Create a new directory with mkdir hello_world and change into the newly created directory with cd hello_world .

  2. Create a new console application with dotnet new console .
    This will produce two files:

    • hello_world.csproj

      <Project Sdk="Microsoft.NET.Sdk">
      
        <PropertyGroup>
          <OutputType>Exe</OutputType>
          <TargetFramework>netcoreapp1.1</TargetFramework>
        </PropertyGroup>
      
      </Project>
       
    • Program.cs

      using System;
      
      namespace hello_world
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Console.WriteLine("Hello World!");
              }
          }
      }
       
  3. Restore the needed packages with dotnet restore .

  4. Optional Build the application with dotnet build for Debug or dotnet build -c Release for Release. dotnet run will also run the compiler and throw build errors, if any are found.

  5. Run the application with dotnet run for Debug or dotnet run .\bin\Release\netcoreapp1.1\hello_world.dll for Release.


Command Prompt output

enter image description here

Creating a new program using Mono

First install Mono by going through the install instructions for the platform of your choice as described in their installation section.

Mono is available for Mac OS X, Windows and Linux.

After installation is done, create a text file, name it HelloWorld.cs and copy the following content into it:

public class Program
{
    public static void Main()
    {
        System.Console.WriteLine("Hello, world!");
        System.Console.WriteLine("Press any key to exit..");
        System.Console.Read();
    }
}
 

If you are using Windows, run the Mono Command Prompt which is included in the Mono installation and ensures that the necessary environment variables are set. If on Mac or Linux, open a new terminal.

To compile the newly created file, run the following command in the directory containing HelloWorld.cs :

mcs -out:HelloWorld.exe HelloWorld.cs
 

The resulting HelloWorld.exe can then be executed with:

mono HelloWorld.exe
 

which will produce the output:

Hello, world!   
Press any key to exit..
 

Creating a new project in Visual Studio (console application) and Running it in Debug mode

  1. Download and install Visual Studio. Visual Studio can be downloaded from VisualStudio.com. The Community edition is suggested, first because it is free, and second because it involves all the general features and can be extended further.

  2. Open Visual Studio.

  3. Welcome. Go to File → New → Project. Microsoft Visual Studio - File Menu

  4. Click TemplatesVisual C#Console Application

    Microsoft Visual Studio - New Project window

  5. After selecting Console Application, Enter a name for your project, and a location to save and press OK. Don't worry about the Solution name.

  6. Project created. The newly created project will look similar to:

    Microsoft Visual Studio - c# Default Project

    (Always use descriptive names for projects so that they can easily be distinguished from other projects. It is recommended not to use spaces in project or class name.)

  7. Write code. You can now update your Program.cs to present "Hello world!" to the user.

    using System;
    
    namespace ConsoleApplication1
    {
        public class Program
        {
            public static void Main(string[] args)
            {
            }
        }
    }
     

    Add the following two lines to the public static void Main(string[] args) object in Program.cs : (make sure it's inside the braces)

    Console.WriteLine("Hello world!");
    Console.Read();
     

    Why Console.Read() ? The first line prints out the text "Hello world!" to the console, and the second line waits for a single character to be entered; in effect, this causes the program to pause execution so that you're able to see the output while debugging. Without Console.Read(); , when you start debugging the application it will just print "Hello world!" to the console and then immediately close. Your code window should now look like the following:

    using System;
    
    namespace ConsoleApplication1
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                Console.WriteLine("Hello world!");
                Console.Read();
            }
        }
    }
     
  8. Debug your program. Press the Start Button on the toolbar near the top of the window Start Debugging Button or press F5 on your keyboard to run your application. If the button is not present, you can run the program from the top menu: Debug → Start Debugging. The program will compile and then open a console window. It should look similar to the following screenshot:

Console running the Hello World application

  1. Stop the program. To close the program, just press any key on your keyboard. The Console.Read() we added was for this same purpose. Another way to close the program is by going to the menu where the Start button was, and clicking on the Stop button.

Creating a new project using Xamarin Studio

  1. Download and install Xamarin Studio Community.
  2. Open Xamarin Studio.
  3. Click FileNewSolution.

Creating New Project in Xamarin Studio

  1. Click .NETConsole Project and choose C#.
  2. Click Next to proceed.

Choosing Template for new project

  1. Enter the Project Name and Browse... for a Location to Save and then click Create.

Project name and location

  1. The newly created project will look similar to:

enter image description here

  1. This is the code in the Text Editor:
using System;

namespace FirstCsharp
{
    public class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadLine();
        }
    }
}
 
  1. To run the code, press F5 or click the Play Button as shown below:

Run the code

  1. Following is the Output:

output

Creating a new query using LinqPad

LinqPad is a great tool that allows you to learn and test features of .Net languages (C#, F# and VB.Net.)

  1. Install LinqPad

  2. Create a new Query (Ctrl + N) enter image description here

  3. Under language, select "C# statements" enter image description here

  4. Type the following code and hit run (F5)

    string hw = "Hello World";
    
    hw.Dump(); //or Console.WriteLine(hw);
     

enter image description here

  1. You should see "Hello World" printed out in the results screen. enter image description here
  2. Now that you have created your first .Net program, go and check out the samples included in LinqPad via the "Samples" browser. There are many great examples that will show you many different features of the .Net languages. enter image description here

Notes:

  1. If you click on "IL", you can inspect the IL code that your .net code generates. This is a great learning tool. enter image description here
  2. When using LINQ to SQL or Linq to Entities you can inspect the SQL that's being generated which is another great way to learn about LINQ.


Got any C# Language Question?