Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
C#-program består av en eller flera filer. Varje fil innehåller noll eller fler namnområden. Ett namnområde innehåller typer som klasser, structs, gränssnitt, uppräkningar och ombud eller andra namnområden. Följande exempel är stommen i ett C#-program som innehåller alla dessa element.
using System;
Console.WriteLine("Hello world!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
}
I föregående exempel används instruktioner på den översta nivån för programmets startpunkt. Endast en fil kan ha uttalanden på högsta nivå. Programmets startpunkt är den första textraden med programtext i filen. I det här fallet är det Console.WriteLine("Hello world!");.
Du kan också skapa en statisk metod med namnet Main som programmets startpunkt, som du ser i följande exempel:
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}
I så fall startar programmet i den inledande klammerparentesen Main för metoden, vilket är Console.WriteLine("Hello world!");
Skapa och köra C#-program
C# är ett kompilerat språk. I de flesta C#-program använder dotnet build du kommandot för att kompilera en grupp källfiler till ett binärt paket. Sedan använder dotnet run du kommandot för att köra programmet. (Du kan förenkla den här processen eftersom dotnet run kompilerar programmet innan du kör det om det behövs.) De här verktygen stöder ett omfattande språk för konfigurationsalternativ och kommandoradsväxlar. Kommandoradsgränssnittet dotnet (CLI), som ingår i .NET SDK, innehåller många verktyg för att generera och ändra C#-filer.
Från och med C# 14 och .NET 10 kan du skapa filbaserade appar, vilket förenklar skapandet och körningen av C#-program. Du använder dotnet run kommandot för att köra ett program som finns i en enda *.cs fil. Om följande kodfragment till exempel lagras i en fil med namnet hello-world.cskan du köra det genom att dotnet run hello-world.csskriva :
#!/usr/local/share/dotnet/dotnet run
Console.WriteLine("Hello, World!");
Den första raden i programmet innehåller sekvensen #! för Unix-gränssnitt. Platsen för dotnet CLI kan variera på olika distributioner. Om du ställer in körningsbehörigheten (+x) på en C#-fil i ett Unix-system kan du köra C#-filen från kommandoraden:
./hello-world.cs
Källan för dessa program måste vara en enda fil, men annars är all C#-syntax giltig. Du kan använda filbaserade appar för små kommandoradsverktyg, prototyper eller andra experiment. filbaserade appar tillåter förprocessordirektiv som konfigurerar byggsystemet.
Uttryck och satser
C#-program skapas med uttryck och instruktioner. Uttryck genererar ett värde och uttryck utför en åtgärd:
Ett uttryck är en kombination av värden, variabler, operatorer och metodanrop som utvärderas till ett enda värde. Uttryck ger ett resultat och kan användas varhelst ett värde förväntas. Följande exempel är uttryck:
-
42(literalvärde) -
x + y(aritmetisk operation) -
Math.Max(a, b)(metodanrop) -
condition ? trueValue : falseValue(villkorsuttryck) -
new Person("John")(skapa objekt)
En instruktion är en fullständig instruktion som utför en åtgärd. Instruktioner returnerar inte värden. I stället styr de programflödet, deklarerar variabler eller utför åtgärder. Följande exempel är uttalanden:
-
int x = 42;(deklarationsutdrag) -
Console.WriteLine("Hello");(uttrycksinstruktor – omsluter ett metodanropsuttryck) -
if (condition) { /* code */ }(villkorssats) -
return result;(retursats)
Den viktigaste skillnaden: uttrycken ger värden, medan instruktionerna utför handlingar. Vissa konstruktioner, till exempel metodanrop, kan vara båda. Är till exempel Math.Max(a, b) ett uttryck när det används i int result = Math.Max(a, b);, men blir ett uttrycksuttryck när det skrivs ensamt som Math.Max(a, b);.
För detaljerad information om uttalanden, se Uttalanden. Information om uttrycksbaserade medlemmar och andra uttrycksfunktioner finns i Uttrycksbaserade medlemmar.
Relaterade avsnitt
Du lär dig mer om dessa programelement i avsnittet typer i grundguiden:
Språkspecifikation för C#
Mer information finns i Grundläggande begrepp i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.