Skip to content

Commit 54bf853

Browse files
committed
Revise L04, L05
1 parent 4cb8d6f commit 54bf853

2 files changed

Lines changed: 11 additions & 48 deletions

File tree

04_CsharpGrundlagenII.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
author: Sebastian Zug, Galina Rudolf, André Dietrich, Volker Göhler, `Lina` & `Florian2501`
44
email: sebastian.zug@informatik.tu-freiberg.de
5-
version: 1.0.8
5+
version: 1.0.9
66
language: de
77
narrator: Deutsch Female
88
comment: Werte- und Referenzdatentypen, Array, String, implizite Variablendefinition und Nullables
@@ -481,12 +481,14 @@ public class Program
481481

482482
> In C# gibt es auch das Schlüsselwort `readonly`, das eine Variable als konstant kennzeichnet, aber erst zur Laufzeit initialisiert wird.
483483
484-
| `const` | `readonly` |
485-
| --------------------------------------- | --------------------------------------------------------- |
486-
| Muss zur Compilezeit definiert werden | Kann zur Kompilierzeit oder zur Laufzeit definiert werden |
487-
| Implizit statisch | Instanz-Ebene oder statisch |
488-
| Assembler-übergreifend kopiert | Assembler-übergreifend gemeinsam genutzt |
489-
| Speicher nicht zuweisen | Speicher zuweisen |
484+
| Aspekt | `const` | `readonly` |
485+
| ----------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------- |
486+
| Wert bekannt | zur **Compilezeit** | spätestens nach dem **Konstruktor** (zur Laufzeit) |
487+
| Zuweisung erlaubt | nur bei der Deklaration | bei der Deklaration **oder** im Konstruktor |
488+
| Klassenbindung | implizit `static` (gehört zur Klasse) | wahlweise Instanz-Feld oder `static` |
489+
| Erlaubte Typen | nur primitive Typen, `string` und `null` | **alle** Typen |
490+
| Speicher zur Laufzeit | kein eigenes Feld — der Wert wird an jede Verwendungsstelle einkompiliert | echtes Feld im Objekt bzw. in der Klasse |
491+
| Verhalten über Assembly-Grenzen | Wert wird in jede nutzende Assembly **einkopiert** — Änderungen erfordern Neukompilieren aller Nutzer | Wert wird zur Laufzeit aus der definierenden Assembly **gelesen** — Änderungen wirken sofort |
490492

491493
### Implizit typisierte Variablen
492494

@@ -598,6 +600,7 @@ public struct Nullable <T>{
598600

599601
https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/default-values-table
600602
603+
> Warum hat das Csharp Team in Version 8.0 plötzlich die Möglichkeit eingeführt, Referenztypen als nullable zu deklarieren? Was könnte der Grund dafür sein?
601604

602605
## Aufgaben
603606

05_CsharpGrundlagenIII.md

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
author: Sebastian Zug, Galina Rudolf, André Dietrich & `Lina`
44
email: sebastian.zug@informatik.tu-freiberg.de
5-
version: 1.0.4
5+
version: 1.0.5
66
language: de
77
narrator: Deutsch Female
88
comment: Ein-und Ausgabeoperationen, Ausnahmebehandlung
@@ -410,46 +410,8 @@ Zur Erinnerung, in Markdown werden Tabellen nach folgendem Muster aufgebaut:
410410
| Astrid | 23 | Level Designer |
411411
```
412412

413-
<!-- data-type="none" -->
414-
| Name | Alter | Aufgabe |
415-
|:------ | -----:|:--------------- |
416-
| Peter | 42 | C-Programmierer |
417-
| Astrid | 23 | Level Designer |
418-
419413
Geben Sie die Daten bestimmte Fußballvereine in einer Markdown-Tabelle aus.
420414

421-
{{0}}
422-
```csharp GenerateMarkDownTable
423-
using System;
424-
425-
public class Program
426-
{
427-
static void Main(string[] args)
428-
{
429-
string [] clubs = {"Blau Weiß", "Grün Gelb 1905", "Borussia Tralla Trulla", "Eintracht"};
430-
int [] punkte = {12, 10, 9, 5};
431-
// Wie lang ist ein Clubname maximal?
432-
int maxlength = 0;
433-
foreach(string club in clubs)
434-
{
435-
maxlength = club.Length < maxlength ? maxlength : club.Length ;
436-
}
437-
maxlength += 1;
438-
// Ausgabe
439-
string output;
440-
output = "| ";
441-
442-
// Hier sind Sie gefragt
443-
Console.WriteLine(output);
444-
}
445-
}
446-
```
447-
@LIA.eval(`["main.cs"]`, `mcs main.cs`, `mono main.exe`)
448-
449-
450-
{{1}}
451-
***************************************************************************
452-
453415
```csharp GenerateMarkDownTable
454416
using System;
455417

@@ -484,8 +446,6 @@ public class Program
484446

485447
> **Frage:** Welche Annahmen werden implizit bei der Erstellung der Tabelle getroffen? Wo sehen Sie Verbesserungsbedarf?
486448
487-
***************************************************************************
488-
489449
## I/O Leseoperationen
490450

491451
Eine Software ist zumeist von Nutzereingaben abhängig. Diese können:

0 commit comments

Comments
 (0)