Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C#-programok egy vagy több fájlból állnak. Minden fájl nulla vagy több névteret tartalmaz. A névterek olyan típusokat tartalmaznak, mint az osztályok, a szerkezetek, a felületek, az enumerálások és a meghatalmazottak, vagy más névterek. Az alábbi példa egy C#-program csontváza, amely az összes ilyen elemet tartalmazza.
using System;
Console.WriteLine("Hello world!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
}
Az előző példa legfelső szintű utasításokat használ, a program belépési pontjára. Csak egy fájl rendelkezhet legfelső szintű utasításokkal. A program belépési pontja a fájlban lévő programszöveg első szöveges sora. Ebben az esetben ez a Console.WriteLine("Hello world!");.
A program belépési pontjaként létrehozhat egy Main nevű statikus metódust is, ahogyan az a következő példában is látható:
// 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!");
}
}
}
Ebben az esetben a program a metódus nyitó zárójelében Main kezdődik, amely Console.WriteLine("Hello world!");
C#-programok létrehozása és futtatása
A C# egy lefordított nyelv. A legtöbb C#-programban a dotnet build parancs használatával lefordíthat egy forrásfájlcsoportot bináris csomagba. Ezután a dotnet run parancs használatával futtathatja a programot. (Egyszerűsítheti ezt a folyamatot, mert dotnet run szükség esetén a program futtatása előtt lefordítja a programot.) Ezek az eszközök a konfigurációs beállítások és a parancssori kapcsolók gazdag nyelvét támogatják. A dotnet .NET SDK-ban található parancssori felület (CLI) számos eszközt biztosít a C#-fájlok létrehozásához és módosításához.
A C# 14-től és a .NET 10-től kezdve fájlalapú alkalmazásokat hozhat létre, amelyek megkönnyítik a C#-programok létrehozását és futtatását. A parancs használatával dotnet run egyetlen *.cs fájlban található programot futtathat. Ha például a következő kódrészlet egy nevesített hello-world.csfájlban van tárolva, a következő beírással dotnet run hello-world.csfuttathatja:
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
A program első sora a #! szekvenciát tartalmazza, amely a Unix rendszerhéjak számára készült. A parancssori felület dotnet helye különböző disztribúcióktól függően változhat. Bármely Unix-rendszeren, ha a végrehajtási (+x) engedélyt egy C#-fájlon állítja be, a parancssorból futtathatja a C# fájlt:
./hello-world.cs
Ezeknek a programoknak a forrásának egyetlen fájlnak kell lennie, de ellenkező esetben az összes C# szintaxis érvényes. Fájlalapú alkalmazásokat használhat kis parancssori segédprogramokhoz, prototípusokhoz vagy más kísérletekhez. a fájlalapú alkalmazások lehetővé teszik a buildelési rendszert konfiguráló előfeldolgozási irányelveket .
Kifejezések és állítások
A C#-programok kifejezések és utasítások használatával készülnek. A kifejezések értéket hoznak létre, az utasítások pedig végrehajtanak egy műveletet:
A kifejezés értékek, változók, operátorok és metódushívások kombinációja, amelyek egyetlen értékre értékelnek. A kifejezések eredményt adnak, és bárhol használhatók, ahol egy érték várható. A következő példák a kifejezések:
-
42(literálérték) -
x + y(aritmetikai művelet) -
Math.Max(a, b)(metódushívás) -
condition ? trueValue : falseValue(feltételes kifejezés) -
new Person("John")(objektum létrehozása)
Az utasítás egy teljes utasítás, amely végrehajt egy műveletet. Az utasítások nem adnak vissza értékeket; ehelyett a programfolyamatot vezérlik, változókat deklarálnak vagy műveleteket hajtanak végre. A következő példák állítások:
-
int x = 42;(nyilatkozat) -
Console.WriteLine("Hello");(kifejezési utasítás – metódushívási kifejezés körbefuttatása) -
if (condition) { /* code */ }(feltételes utasítás) -
return result;(visszatérési utasítás)
A fő különbség: a kifejezések értékeket értékelnek ki, míg az utasítások műveleteket hajtanak végre. Egyes szerkezetek, például a metódushívások, mindkettő lehet. Például, amikor a Math.Max(a, b)-et használják int result = Math.Max(a, b);-ben, akkor kifejezésként működik, de amikor önmagában Math.Max(a, b);-ként van írva, kifejezési utasítássá válik.
Az utasításokról részletes információt az Utasítások című témakörben talál. A kifejezés-alapú tagokról és az egyéb kifejezésbeli lehetőségekről a Kifejezés-alapú tagok című témakörben olvashat.
Kapcsolódó szakaszok
Ezeket a programelemeket az alapismeretek útmutatójának típusaiban ismerheti meg:
C# nyelvi specifikáció
További információ: Alapfogalmak a C# nyelvi specifikációban. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.