Schlagwort: .NET

Der sinnvolle Einsatz von Schnittstellen

Veröffentlicht am: 28. Januar 2017
Autor:

Die große Stärke von Schnittstellen ist, dass sie nachträglich einer Ableitungslinie hinzugefügt werden können. In .NET wird bspw. die Schnittstelle IDisposable für das Dispose-Pattern verwendet. In Java dient die Schnittstelle AutoCloseable dazu, für Klassen die Verwendung der try-with-resources-Anweisung zu ermöglichen.

Weiterlesen …

Sicheres Beenden von Timer-Instanzen

Veröffentlicht am: 19. März 2016
Autor:

Die Klasse System.Threading.Timer verfügt über eine parameterlose Dispose-Funktion zur Freigabe. Laut Dokumentation sind jedoch Timer-Ereignisse nach der Freigabe möglich. Deshalb sollte die parameterlose Variante der Dispose-Funktion besser nicht benutzt werden.

Weiterlesen …

Nullwerte für Wertetypen

Veröffentlicht am: 11. Oktober 2012
Autor:

Im .NET Framework sind Datentypen entweder Wertetypen oder Referenztypen. Wertetypen haben grundsätzlich einen Standardkonstruktor, der dafür sorgt, dass alle Member-Variablen mit ihrem Standardwert initialisiert werden. Als Standardwert wird dabei auf Speicherebene der Wert 0 verstanden. Es ist generell nicht möglich, für Wertetypen einen Standardkonstruktor zu implementieren.

Weiterlesen …

Eigenschaften statt schreibgeschützter Variablen

Veröffentlicht am: 10. Oktober 2012
Autor:

Im Hinblick auf die Robustheit von Bibliotheken sind öffentliche Eigenschaften tatsächlich öffentlichen Variablen vorzuziehen. Wird aus einer schreibgeschützten Eigenschaft eine veränderliche Eigenschaft, bleibt die Schnittstelle der Bibliothek kompatibel. Gleiches gilt für Variablen. Die Änderung einer schreibgeschützter Variablen zu einer Eigenschaft ist jedoch nicht kompatibel.

Weiterlesen …

Generelle Ausnahmenbehandlung in Bibliotheken

Veröffentlicht am: 12. November 2011
Autor:

Die generelle Behandlung von Ausnahmen in Bibliotheken steigert nicht etwa die Qualität einer Bibliothek, sondern gefährdet sie eher. Diese auf den ersten Blick gewagte These kann tatsächlich auch begründet werden.

Weiterlesen …

Automatische Thread-Synchronisation

Veröffentlicht am: 26. Juli 2011
Autor:

Werden mehrere Abarbeitungspfade (Threads) innerhalb eines Prozesses verwendet, sind Maßnahmen zur Thread-Synchronisation notwendig, um Wettlaufsituationen (Race Conditions) auf gemeinsam genutzte Ressourcen (meist Speicher) zu verhindern.

Weiterlesen …

Erweiterungsfunktionen in C# 3.0

Veröffentlicht am: 17. Mai 2011
Autor:

Erweiterungsfunktionen werden ab C# 3.0 unterstützt. Sie ermöglichen das nachträgliche Hinzufügen von Member-Funktionen zu Klassen und Schnittstellen. Versiegelte Klassen können ebenso erweitert werden, wie Klassen anderer Assemblies. Erweiterungsfunktionen können bestehende Funktionen nicht überschreiben oder verdecken. Bestehende Funktionen haben gegenüber Erweiterungsfunktionen Vorrang.

Weiterlesen …

Komponenten-Konstruktoren

Veröffentlicht am: 20. November 2010
Autor:

Für die Erstellung nicht-visueller Komponenten für Windows Forms-Anwendungen kann die Klasse System.ComponentModel.Component als Basis verwendet werden.

Weiterlesen …