Mehr Fragen bantwortet

This commit is contained in:
Hollowpoint186 2021-03-12 21:49:51 +01:00
parent 03f99a4f6f
commit 0e57874a2c
1 changed files with 277 additions and 6 deletions

283
readme.md
View File

@ -446,17 +446,287 @@ Theorie:
51. Events eines Windows Forms:
- Click
- FormClosing
- Touch
52. Parameter der Show Methode von MessageBox
- owner | Implementierung von IWin32Window, wird Besitzer des Dialogfeldes
- text | Text im Fenster
- caption | Titel in der Fensterleiste
- buttons | Ja/Nein/Abbrechen etc. buttons
- icon | Symbol im Meldungsfenster
- defaultButton | Standardbutton von buttons
- options | Anzeige- und Zuordnungsoptionen
- helpFilePath | Pfad für die Hilfedatei, wenn auf "Hilfe" geklickt wird
- keyword | Hilfestichwort
53. Einsatz der FileSystemWatcher Komponente
- Überwachung von Dateien bzw. Ordnerstrukturen
- Löst ein Ereignis aus bei Änderungen
-> Übergabe von verschiedenen Eventhandlern an den FileSystemWatcher
Beispielsweise Changed, Created, Deleted, Renamed
54. Eigenschaften und Methoden eines Exception Objekt
- Das Exception Objekt wird in try - catch Blöcken verwendet und wird zum bheandeln von Ausnahmen in der Programmlogik verwendet
Eigenschaften:
- Stacktrace
- Message
Methoden:
- GetBaseException | Gibt Exception zurück bei einem von Exception abgeleitetem Objekt wie z.B. IOException
- GetObjectData | Setzt die SerializationInfo
- GetType | Gibt den Typ der Exception zurück wie z.B. IOException
- ToString | Gibt die Exception Message als String zurück
55. Exception Handling Erklärung
- Mit try - catch kann man eine Exception abfangen
- Im try Block ist der Code, der möglicherweise eine Ausnahme auslöst und wird in catch abgefangen
- Der catch Block wird üblicherweise zum Logging der Exception verwendet, oder die Exception wird weiterverarbeitet
- mit *throw new Exception()* kann man absichtlich eine Exception auslösen
56. Eigene Exception erstellen
- klasse von Exception (oder abgeleiteter Exception Klasse) ableiten
- konstruktor der Basisklasse für Fehlermeldung nutzen
public class myException: System.Exception
{
public myException():base(“Spezielle Fehlermeldung”)
{
...
}
}
57. Vorteile des Structured Exception Handling
- Trennung von Programm und Fehlerlogik
- genaue Fehlerbeschreibung inkl Zusatzinformationen
- abfangen mehrerer Exceptions möglich
58. Serialisierung/Deserialisierung
Unter Serialisierung versteht man das Speichern eines Objektes auf einem beständigen Speichermedium und das Wiederherstellen ders Objektes anhand seiner Daten im Programm.
(Deserialisierung)
59. Unterschiede zwischen Binary und XML Serialisierung
XML:
- Overhead durch XML Tags
- lesbarer Code -> flexibel
- nur public Elemente werden serialisiert
Binary:
- schnell lesbar, klare Datei
- Binärformat ist unflexibel
- private Elemente werden mitserialisiert
60. Erstellung einer serialisierten Klasse
[Serializable]
public class SerializableClass {
public int Aersche = 15;
public int x = 0;
public String str = null;
}
61. Umsetzung der binären Serialisierung | https://www.guru99.com/c-sharp-serialization.html
- Serializable Klasse erstellen
- Objekt von Serializable Klasse erstellen und den Attributen Werte zuweisen
- BinaryFormatter erstellen
- Beispielszenario: Stream öffnen zum Lesen der Datei die serialisiert werden soll
- Mit BinaryFormatter.Serialize eingelesenen Stream und Serializable Objekt serialisieren
- Stream schließen mit .Close()
62. Implementierung von XML Serialisierung
```
MyClass obj1 = new MyBeispiel( );
XmlSerializer s = new XmlSerializer(typeof(MyBeispiel));
FileStream fs;
// Serialisieren
fs = new FileStream(@"C:\test.txt", FileMode.Create);
s.Serialize(fs, obj1);
fs.Close( );
// Deserialisierung
fs = new FileStream(@"C:\test.txt", FileMode.Open);
MyClass obj2 = (MyClass) s.Deserialize(fs);
fs.Close( );
```
63. DataBindingSource Objekt
Die BindingSource Komponente dient vielen Zwecken.
Das Binden von Steuerelementen in einem Formular an Daten wird vereinfacht,
indem Währungsverwaltung, Änderungs Benachrichtigung und andere Dienste zwischen
Windows Forms Steuerelementen und Datenquellen bereitgestellt werden.
DataSetTabelle --- DataBindingSource Objekt --- Steuerelement
64. Simple und Complex Binding von Steuerelementen
Beim simple binding bindet man nur eine Eigenschaft an einen
Datensatz (z. B. die Text-Property eines Textfeldes an den Namen des Personenobjekts).
Verwendet man das complex binding, so werden mehrere Datensätze an ein Steuerelement
gebunden (z. B. alle Daten mehrerer Datensätze an ein DataGrid oder alle Namen an eine ComboBox).
65. BindingNavigator Objekt
The BindingNavigator control represents a standard way
to navigate and manipulate data on a form. It is a special-purpose
ToolStrip control for navigating and manipulating controls on the Windows Form.
In most cases, a BindingNavigator is combined with a BindingSource control to
move through data records on a Windows Form. It is easy to modify the
BindingNavigator component if you want to add additional or alternative
commands for the user.
A BindingNavigator is:
- a VCR (video-cassette recorder) control which is used with BindingSource.
- based on ToolStrip.
- extensible and pluggable.
66. Zweck einer DAO Klasse
```
DAO - Klasse (Data Access Object):
- Entwurfsmuster das den Zugriff auf unterschiedliche Arten von Datenquellen
- Muster für die Gestaltung von APIs
- Datenadapter der Applikation
- speichert z.b. Daten in einer privaten List Collection
- ist für die Serialisierung und Deserialisierung zuständig
- meist werden Methoden wie SaveData() ausprogrammiert
-> Data Access Object Klassen kapseln die Serialisierung/ Deserialisierung von Objekten.
Programmlogik und Datenverwaltung sind getrennt!
```
67. Aufgabe des Gerätekontextes beim Druck in C#
- Graphics Eigenschaft der Klasse PrintPageEventArgs
- Informiert den Drucker welche Art von Grafiken gedruckt werden
```
private void printDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Blue,
new Rectangle(100, 150, 250, 250));
}
```
Der Gerätekontext stellt eine einheitliche Schnittstelle zur Ausgabe von Daten auf Ausgabegeräte
bereit („virtuelle Zeichenleinwand“). Somit wird eine hardwareunabhängige Ausgabelogik im
Programm möglich.
68. Warum funktioniert die Druckvorschau ohne installierten Drucker nicht?
Weil kein Druckertreiber verfügbar ist.
69. Prinzipieller Druckvorgang unter C#
Druckvorgang:
SIEHE "Zusammenfassung zum Adressbuch3 TA.pdf"
1 PrintDocument Object erzeugen
```
PrintPage Event -> Handler-Methode für Drucklogik
PrintPageEventArgs:
PageSettings Property des PrintDocuments (Seiteneinstellungen)
Graphics Object (Device Context)
HasMorePages Property (true setzen, wenn noch weitere Seiten gedruckt werden sollen…)```
2 Seitenränder setzen
-> PageSattings Objekt -> Margins… (Left, Rightt, Top, Bottom) setzen.
3 Bedruckbaren Bereich ermitteln
-> PrintPageEventArgs e -> MarginBounds… (Left, Rightt, Top, Bottom) nutzen.
4 Schriftarten erstellen
-> Im .NET Framework nutzt man die Font Klasse zum Erstellen von Schriften:
```
Font headerFont = new Font ("Arial",18, FontStyle.Bold);
```
5 Schriftarten messen zur Positionsberechnung
-> Über das Graphics Objekt können Schriften gemessen werden.
MeasureString(String text, Font font)… (Width, Height)
```
float headerWidth = g.MeasureString(header, headerFont).Width;
```
6 DrawString(...) des Graphics Objects
-> Zeichnet einen String an die angegebene Position auf den Device Context.
```
g.DrawString(text, schrift, brush, xPosition, yPosition);
```
70. Welche Elemente sind in PrintPageEventArgs
Eigenschaften:
- Cancel
- Graphics
- HasMorePages
- MarginBounds
- PageBounds
- PageSettings
Methoden:
- Equals(Object)
- GetHashCode()
- GetType()
- MemberwiseClone()
- ToString()
71. Benutzerdialoge zur Druckunterstützung
- PrintDialog
- PrintPreviewDialog
- PageSetupDialog
72. Einrichten von Seitenränder
Seitenränder setzen
-> PageSattings Objekt -> Margins… (Left, Rightt, Top, Bottom) setzen
73. Vorgehensweise zum Ermitteln des bedruckbaren Bereichs
Bedruckbaren Bereich ermitteln
-> PrintPageEventArgs e -> MarginBounds… (Left, Rightt, Top, Bottom) nutzen.
74. Initialisierung einer Schriftart
Schriftarten erstellen
-> Im .NET Framework nutzt man die Font Klasse zum Erstellen von Schriften:
```
Font headerFont = new Font ("Arial",18, FontStyle.Bold);
```
75. Höhe und Breite eines Textes zur Textpositionierung berechnen
- Graphics.MeasureString() verrechnet Font mit String
->This method returns a SizeF structure that represents
the size, in the units specified by the PageUnit property,
of the string specified by the text parameter as drawn
with the font parameter.
76. DrawString Funktionsweise
Draws the specified text string at the specified location with the specified Brush and Font objects.
Parameter:
String s | String der gezeichnet werden soll
Font font | Text Format des Strings
Brush brush | Farbe und Textur des gezeichneten Text
Single x | x Koordinate des Text
Single y | Y Koordinate des Text
Legende:
- MSIL : Microsoft Intermediate Language (auch CIL - Common Intermediate Language)
@ -464,3 +734,4 @@ Legende:
- CLS : Common Language Specification
- JIT : Just in Time
- COM : Component Object Model
- DAO : Data Access Object