diff --git a/README.md b/README.md index 16d9607a035b3bcc6d0a8dcdc8a8956cd04d1538..0d27458b2ff5a824bb03f8258c94d4b6820e3f13 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,28 @@ Compilieren geht mit `dotnet build`, ausgeführt im Ordner wo die `.csproj` lieg `dotnet run` compiliert und führt es direkt aus Wer Visual Studio (das "große", nicht Code) kennt kann auch einfach die `.sln`-Datei damit öffnen. Für VS Code gibt es eine C#-Erweiterung. + +## C# - was sollte ich wissen? + +C# ist eine syntaktisch an C++ und Java angelehnte Programmiersprache, die sich erst in tiefergehenden Details deutlich unterscheidet. +Angemerkt sei, dass Die Laufzeit von C# den Speicher frei räumt (vergleichbar mit Java), darum müssen wir uns also nicht kümmern. Eine Ausnahme bilden native Resourcen wie Streams, diese müssen manuell oder mit einem using-Block geschlossen werden. + +Falls ihr etwas im Code verändert: Ich hoffe das meiste ist selbsterklärend. Wichtig sind vielleicht ein paar Sachen zu String: + +Es gibt mehrere Arten von String + +- `"Text"` - Der String beginnt und endet mit `"` + hier können Escapesequenzen wie `\n` verwendet werden um Sonderzeichen einzufügen. `\"` entspricht einem `"` +- `@"Text"` - so genannte Verbatim-Strings + Escape-Sequenzen können hier nicht genutzt werden, dafür können Zeilenumbrüche direkt eingefügt werden. + Achtung: Auch Leerzeichen am Anfang einer Zeile werden 1 zu 1 mit übernommen + Um ein `"` einzugeben wird `""` benutzt + Diese String-Form ist besonders Praktisch um mehrzeiligen Code oder Pfadangaben mit \ wiederzugeben. +- `$"Test {var}"` bzw. `$@""` - so genannte Format-Strings + Es gelten die Grundregeln der jeweils anderen Formen. Zusätzlich können Variablen direkt in `{}` angegeben werden. Auf diesen Variablen wird dann `.ToString()` aufgerufen und das Ergebnis einfahc mit der linken- und rechten Seite verknüpft. + +Weitere Informationen + +- String-Operationen wie `Trim`, `Substring` usw. finden sich in der `System.String`-Klasse. +- Formatierungen finden grundsätzlich in der Culture des Systems statt. Um Invariant zu bleiben (im wesentlichen en-US) muss `.ToString(CultureInfo.InvariantCulture)` genutzt werden +- Einzelne Zeichen (chars) werden in `'` angegeben.