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.
Jótanács
Új szoftverfejlesztés? Először az Első lépések oktatóanyagokkal kezdje. A programstruktúra megismerése előtt végigvezetik az első C#-programok írásán.
Tapasztalt egy másik nyelven? Érdemes lehet átfutni a Első lépések szakaszt a C#-specifikus szintaxis miatt, majd térjen vissza ehhez az oldalhoz.
C#-programokat ezekből az alapvető építőelemekből hozhat létre: a névterek rendszerezik a típusok, típusok (osztályok, szerkezetek, felületek, enumerálások és meghatalmazottak) viselkedését és adatait, az utasítások és kifejezések pedig futásidőben végeznek munkát. A belépési pont struktúrája attól függ, hogy melyik alkalmazásstílust választja.
Az alkalmazásstílus kiválasztása
C#-program létrehozásakor két független döntést kell meghoznia a szerkezetéről:
-
Fájlalapú vagy projektalapú?
- A fájlalapú alkalmazások egyetlen
.csfájlból futnak, projektfájl nélkül. - A projektalapú alkalmazások fájlokat
.csprojhasználnak, és több forrásfájlra is kiterjedhetnek.
- A fájlalapú alkalmazások egyetlen
-
Legfelső szintű utasítások vagy
Mainmetódus?- A legfelső szintű utasítások lehetővé teszik a végrehajtható kód írását közvetlenül a fájl tetején.
- A
Mainmetódus explicit statikus metódusba burkolja a belépési pontot.
A projektalapú alkalmazások és a fájlalapú alkalmazások egyaránt támogatják a belépési pont stílusát.
Fájlalapú alkalmazások és projektalapú alkalmazások
A C# 14-től és a .NET 10-től kezdve a fájlalapú alkalmazások lehetővé teszik, hogy egyetlen *.cs fájlban lévő programot futtasson projektfájl nélkül. Tárolja a következő kódot egy hello-world.cs nevű fájlban, és futtassa a következőkkel: dotnet run hello-world.cs vagy dotnet hello-world.cs.
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
Megjegyzés:
A #! sor lehetővé teszi a Unix-rendszerhéjak számára a fájl közvetlen futtatását. Bármely Unix-rendszeren állítsa be a végrehajtási (+x) engedélyt, és futtassa a fájlt a parancssorból.
A fájlalapú alkalmazások támogatják az összes C# szintaxist, és használhatnak előfeldolgozási irányelveket a buildelési rendszer konfigurálásához. Használjon fájlalapú alkalmazásokat kis parancssori segédprogramokhoz, prototípusokhoz és kísérletekhez. A fájlalapú alkalmazások egyetlen fájlból állnak egy könyvtárban:
my-app/
└── hello-world.cs
A projektalapú alkalmazások fájlokat .csproj és .NET CLI-parancsokat ésdotnet new munkafolyamatokat dotnet builddotnet runhasználnak. Projektalapú alkalmazásokat akkor válasszon, ha a program több fájlra terjed ki, vagy részletes buildkonfigurációra van szüksége. A projektalapú alkalmazások egy vagy több forrásfájl mellett egy projektfájlt is tartalmaznak:
my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│ └── Person.cs
└── Services/
└── GreetingService.cs
Ha a fájlalapú alkalmazás növekszik, egyszerűen átalakíthatja projektalapú alkalmazássá. Futtassa dotnet project convert egy projektfájl létrehozásához a meglévő forrásfájlból.
Ha tudja, hogy az alkalmazásnak kezdettől fogva több forrásfájlra van szüksége, kezdje egy projektalapú alkalmazással. Elkerülheti a konvertálási lépést, és azonnal külön fájlokba rendezheti a kódot.
Legfelső szintű utasítások vs. metódus Main
Felső szintű utasítások használatával végrehajtható kódot írhat közvetlenül egy fájlba anélkül, hogy egy osztályba és Main metódusba csomagolja. Ez a stílus az alapértelmezett, ha új konzolalkalmazást hoz létre a következővel dotnet new console: . Az alábbi példa egy modern C#-programot mutat be, amely legfelső szintű utasításokat használ:
Console.WriteLine("Hello, World!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
}
A projektben csak egy fájl rendelkezhet felső szintű utasításokkal, és a belépési pont a program szövegének első sora a fájlban. A nagyobb programok létrehozásakor további programelemeket is tartalmaz.
Explicit statikus Main metódust is definiálhat a program belépési pontjaként:
// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Mindkét belépésipont-stílus fájlalapú és projektalapú alkalmazásokkal működik. Mindkét stílus ugyanazokat a funkciókat támogatja.
C#-programok létrehozása és futtatása
A C# egy lefordított nyelv. Projektalapú alkalmazások esetén a parancs használatával lefordíthatja a dotnet build forrásfájlokat bináris csomagba. Használatával dotnet run egyetlen lépésben hozhat létre és futtathat. A dotnet .NET SDK-ban található parancssori felület számos eszközt kínál C#-projektek létrehozásához, létrehozásához és kezeléséhez.
Fájlalapú alkalmazások dotnet run hello-world.cs esetén közvetlenül fordítja le és futtatja az egyetlen fájlt – nincs szükség projektfájlra.
Kifejezések és állítások
Ha követte az Első lépések oktatóanyagokat, már írt kifejezéseket és utasításokat. Minden beírt kódsor az egyik vagy a másik (vagy mindkettő) volt. Most definiáljuk ezeket a kifejezéseket.
A kifejezések és utasítások a C#-programok alapvető építőelemei. Egy kifejezés értéket hoz létre. Az utasítás egy műveletet hajt végre, és általában pontosvesszővel végződik.
A következő kifejezések jelennek meg:
-
42(literálérték) -
x + y(aritmetikai művelet) -
Math.Max(a, b)(metódushívás, amely értéket hoz létre) -
condition ? trueValue : falseValue(feltételes kifejezés) -
new Person("John")(objektum létrehozása)
Az utasítás végrehajt egy műveletet. Az utasítások szabályozzák a programfolyamatot, deklarálják a változókat vagy meghívják a műveleteket. A következő állítások:
-
int x;(nyilatkozat) -
int x = 42;(deklarációs utasítás inicializálással) -
Console.WriteLine("Hello");(metódushívási utasítás) -
if (condition) { /* code */ }(feltételes utasítás) -
return result;(visszatérési utasítás)
Az utasítások gyakran tartalmaznak kifejezéseket, és a kifejezések más kifejezésekbe is beágyazhatók. A következő deklarációs f utasítás például egy összeadási kifejezés eredményéhez rendel hozzá. Ez az összeadási kifejezés két metódushívási kifejezés eredményét adja hozzá:
var maxResult = Math.Max(a, b) + Math.Max(c, d);
Az utasításokról részletes információt az Utasítások című témakörben talál. A kifejezés által testesített tagokról további információt a Kifejezés által testesített tagok című témakörben talál.