Zum Hauptinhalt springen
ProdukteDesktop-WerkzeugeTASTECADZeichnungsprüfungTASTEFILESDateiverwaltungTASTEFTPDateiübertragungTASTESSHRemote-ArbeitsbereichTASTEZIPKomprimieren und EntpackenEntwicklerwerkzeugeTASTECODEIntegrierte Entwicklungsumgebung für RustTASTESTUDIOIntegrierte Entwicklungs- und TestumgebungTASTEETLDatenintegration (ETL)ServerTASTEREMOTERemote-Desktop-ServerTASTEGEOGeodatenserverTASTEMAILE-Mail-ArbeitsbereichErste SchritteDownloadsDokumentationKaufenAlle Produkte
Marktplatz
Neuigkeiten
TechnikNeuigkeitenEntwickler-News von heuteEntwicklerdokuProgrammiersprachenRustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDartWeb-Frontend-FrameworksNext.jsReactVue.js · NuxtSvelteKitAngularServer-FrameworksSpring BootDjangoFastAPIASP.NET CoreNestJS · ExpressApp- & Desktop-FrameworksTauriFlutterReact NativeElectronAlgorithmenAlgorithmus-GrundlagenKernalgorithmenFortgeschrittene AlgorithmenAlgorithmen für die Praxis
CommunityProjekteEntwicklungslogsPromptsProbleme mit KI-ToolsShowcaseCommunity-Leitfaden
ZusammenarbeitWissenstransferWebsite-AufbauDesktop-App-AufbauRelease- und ZahlungspipelineVertriebspartnerKontakt
DiensteRemote-DesktopIndividuelle Installationspakete
TASTEDEV
Produkte

Desktop-Werkzeuge

TASTECADKomplexe Zeichnungen, mühelos geöffnetTASTEFILESNur die Dateien, die zählen – in BestzeitTASTEFTPDer aufgeräumteste Weg für Ihre DateienTASTESSHDie stärkere Verbindung zu Ihren ServernTASTEZIPSchneller packen, sicherer entpacken

Entwicklerwerkzeuge

TASTECODERust-Apps bearbeiten, bauen, debuggen und testen – alles in einem FensterTASTESTUDIOVom Bearbeiten bis zu Remote-Tests und freigegebenen KI-KorrekturenTASTEETLDaten bewegen, die Werte im Blick

Server

TASTEREMOTEEin Remote-Desktop auf Ihrem eigenen ServerTASTEGEOEin GeoServer-kompatibler Geodatenserver, neu aufgebaut in RustTASTEMAILIhre E-Mail wieder in Ihrer Hand

Erste Schritte

DownloadsNeueste Versionen aller ProdukteDokuSo nutzen Sie jedes ProduktKaufenAbos und DauerlizenzenAlle ProdukteAlle Produkte im Überblick
Alle Produkte
MarktplatzNeuigkeiten
Technik

Neuigkeiten

Entwickler-News von heuteOffizielle Meldungen zu Sprachen, Frameworks, GitHub und KIEntwicklerdokuAnleitungen zu Sprachen, Frameworks und Algorithmen

Programmiersprachen

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

Frameworks

Web-Frontend-FrameworksNext.jsReactVue.js · NuxtSvelteKitAngular
Server-FrameworksSpring BootDjangoFastAPIASP.NET CoreNestJS · Express
App- & Desktop-FrameworksTauriFlutterReact NativeElectron

Algorithmen

Algorithmus-GrundlagenKomplexitätsanalyse · Sortieren · Suchen · Grundlegende Datenstrukturen · Bäume und HeapsKernalgorithmenGraphtraversierung · Kürzeste Wege und minimale Spannbäume · Dynamische Programmierung · Greedy-Algorithmen · Teile und herrsche · BacktrackingFortgeschrittene AlgorithmenZeichenkettenalgorithmen · Mathematik und Zahlentheorie · Bitmanipulation · Segmentbäume · Union-FindAlgorithmen für die PraxisStrategie für Coding-Interviews · LRU-Cache · Rate Limiting · Konsistentes Hashing
Alle Entwicklungsdokumente
Community
ProjekteEntwickler und Projekte entdeckenEntwicklungslogsEntscheidungen und ErkenntnissePromptsWiederverwendbare AnweisungenProbleme mit KI-ToolsProbleme und Workarounds für Claude, Codex, GeminiShowcaseFertige ErgebnisseCommunity-LeitfadenWie wir offen entwickeln
Zusammenarbeit
WissenstransferNative Apps mit Rust und eguiWebsite-Aufbau10 Sprachen, Konten, Dokumentation und DownloadsDesktop-App-AufbauRust und egui, ohne WebViewRelease- und ZahlungspipelineSignatur, MSI, deb, rpm, AppImage, PrüfsummenVertriebspartnerEmpfehlen und 30 % erhaltenKontaktEntwicklung, Partnerschaft, Investition
Dienste
Remote-DesktopIhren Computer im Browser erreichenIndividuelle InstallationspaketeNur nötige Funktionen, Einstellungen vorab
Kaufen
DE
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
Anmelden
Anmelden
TASTEDEV

Von kleinen Werkzeugen zu besserer Entwicklung.

support@tastedev.netTASTEDEV unterstützen
ProdukteProduktübersichtKaufenDokuDownloadsMarktplatzSupport
CommunityProjekteEntwicklungslogsPromptsProbleme mit KI-ToolsShowcase
RichtlinienDatenschutzerklärungNutzungsbedingungenAbo-BedingungenRückerstattungCommunity-Richtlinien
KontoAnmeldenRegistrieren
Besucher
Heute
012345678901234567890123456789012345678901234567890123456789
Gestern
012345678901234567890123456789012345678901234567890123456789
Aufrufe gesamt
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
Firma
GXSOFT
Vertretungsberechtigt
CHOI YOUNG GU
Handelsregisternummer
853-44-00368
Anschrift
9F V24, 351 Gyeongin-ro, Michuhol-gu, Incheon, Republic of Korea
Telefon
+82-10-4404-1523
E-Mail
whitecalvin@tastedev.net
Datenschutzbeauftragter
CHOI YOUNG GU

© 2026 TASTEDEVProduktinformationen basieren auf verifizierten Entwicklungsquellen.Veröffentlicht · wird verbessert

C#-Dokumentation
C#
Getting Started with CSyntax BasicsTypes and DataProjects and PackagesErrors and TestingKey Concepts: LINQ, Delegates, and Async
Diskussionen

C#-Anleitung · 2/6

Syntax Basics

Dieses Kapitel ist vorerst nur auf Englisch verfügbar.

This chapter covers the everyday building blocks of C#: variables, methods, control flow, string interpolation, and the namespaces that organize your code. If you have written C, Java, or JavaScript, most of the syntax will feel familiar right away.

Variables and Constants

C# is statically typed, so every variable's type is fixed at compile time. You can spell the type out, or use var and let the compiler infer it from the right-hand side. Either way the type is locked in; var is not a dynamic type.

int count = 10;
double price = 19.99;
string title = "Learning C#";
bool isActive = true;

var total = count * price;      // inferred as double
var names = new List<string>(); // inferred as List<string>

const int MaxRetries = 3;       // compile-time constant
count += 5;                     // variables can be reassigned
// MaxRetries = 4;              // error: constants cannot change

By convention, locals and parameters use camelCase, while methods, properties, types, and constants use PascalCase. Statements end with a semicolon.

Methods

A method declaration lists a return type, a name, and parameters; use void when nothing is returned. When the body is a single expression, the => arrow form keeps it short.

static int Add(int a, int b)
{
    return a + b;
}

static int Square(int x) => x * x;

// optional parameter with a default value
static string Greet(string name, string greeting = "Hello")
    => $"{greeting}, {name}!";

Console.WriteLine(Add(2, 3));                         // 5
Console.WriteLine(Square(4));                         // 16
Console.WriteLine(Greet("Sam"));                      // Hello, Sam!
Console.WriteLine(Greet(greeting: "Hi", name: "Jo")); // named arguments

Methods declared in a top-level statements file become local functions inside the generated entry point. Inside a class, a static method belongs to the type itself, while a method without static belongs to each instance. Methods can also hand back extra values through out parameters; int.TryParse is the classic example.

Control Flow

Conditionals and loops look just like other curly-brace languages. On top of that, C# offers switch expressions and pattern matching for compact branching.

int score = 87;

if (score >= 90)
    Console.WriteLine("A");
else if (score >= 80)
    Console.WriteLine("B");
else
    Console.WriteLine("C or below");

string grade = score switch
{
    >= 90 => "A",
    >= 80 => "B",
    >= 70 => "C",
    _ => "F",
};

for (int i = 0; i < 3; i++)
    Console.WriteLine($"for: {i}");

foreach (var fruit in new[] { "apple", "pear", "plum" })
    Console.WriteLine($"foreach: {fruit}");

int n = 0;
while (n < 3)
{
    n++;
    if (n == 2) continue; // skip to the next iteration
    Console.WriteLine($"while: {n}");
}
Fragen zu diesem Kapitel?
Vorheriges KapitelGetting Started with CNächstes KapitelTypes and Data

The _ arm in a switch expression is the catch-all, and the compiler warns you if some inputs are left unhandled. The is operator matches patterns too: if (value is int number && number > 0) checks the type, converts, and tests the value in one go.

String Interpolation

Prefix a string with $ to embed expressions in braces. A format specifier after a colon controls how numbers and dates are rendered.

var item = "Keyboard";
var unitPrice = 49.90m;
var quantity = 2;

Console.WriteLine($"{quantity} x {item}: {unitPrice * quantity:C}");
Console.WriteLine($"Ratio: {0.256:P1}");          // 25.6%
Console.WriteLine($"|{item,-10}|{quantity,5}|");  // left and right alignment

var path = @"C:\data\report.txt";               // verbatim string: backslashes stay as-is
var json = """
    { "name": "TASTEDEV", "ok": true }
    """;                                         // raw string literal

The m suffix makes a decimal, the right type for money. The C format uses the current culture's currency format, so its output depends on the machine. Raw string literals, delimited by three double quotes, need no escaping for quotes or backslashes, which makes them ideal for embedded JSON or SQL.

Namespaces and using Directives

Namespaces group types so their names don't collide. Writing namespace Name; at the top of a file places every type in that file inside the namespace (a file-scoped namespace). To use types from another namespace, import it with a using directive.

// Models/Order.cs
namespace Shop.Models;

public class Order
{
    public int Id { get; set; }
}
// Program.cs
using System.Text;
using Shop.Models;

var order = new Order { Id = 42 };
var builder = new StringBuilder();
builder.Append("Order number: ").Append(order.Id);
Console.WriteLine(builder.ToString());

With ImplicitUsings enabled you never have to write out namespaces like System, System.Collections.Generic, or System.Linq. To make your own import available project-wide, add a line such as global using Shop.Models; to any one file.

Summary

  • Declare variables with an explicit type or var; either way, the type is fixed at compile time.
  • Methods have a return type, name, and parameters; short bodies use =>, and callers can use optional and named arguments.
  • Beyond if, for, foreach, and while, switch expressions and pattern matching keep branching concise.
  • $"..." interpolation with format specifiers shapes output, and raw string literals hold multi-line text verbatim.
  • File-scoped namespaces group your types, and using brings in types from other namespaces.

0 Kommentare

Top-KommentareNeueste zuerst

Anmelden · Melde dich an, um einen Kommentar zu schreiben.