Page 16 : 37
Object-oriented Programming in C#
Abstract classes, Interfaces, and Patterns
* Method Combination
Method Combination
Parameter Variance
Covariance and Contravariance
* Abstract Classes - Sealed Classes
Abstract Classes
Abstract classes and abstract methods in C#
Abstract Properties
Sealed Classes and Sealed Methods
* Interfaces
Interfaces
Interfaces in C#
Examples of Interfaces
Interfaces from the C# Libraries
Sample use of IComparable
Sample use of IEnumerator and IEnumerable
Sample use of IFormattable
Explicit Interface Member Implementations
* Patterns and Techniques
The Composite design pattern
A Composite Example: Music Elements
An application of Music Elements
Implementation of MusicElement classes
A Composite example: IntSequence
A Composite example: IntSequence application
Implementation of the IntSequence classes
A Composite Example: A GUI
A Composite Example: A GUI
A Composite Example: A GUI
Cloning
Cloning in C#
The fragile base class problem
The Visitor design pattern
Natural object-oriented IntSequence traversals
Towards a Visitor solution
A Visitor example: IntSequence
Visitors - Pros and Cons
Sample use of IEnumerator and IEnumerable
The interface IEnumerator in
System.Collections
is used as the basis for iteration with
foreach
A reproduction of the interface IEnumerable.
A reproduction of the interface IEnumerator.
IEnumerator in the type Interval.
Iteration with and without foreach based on the enumerator.
The interface IEnumerator in System.Collections
The interface IEnumerable in System.Collections
The type Interval and overloaded operators
The iterator design pattern
The interface
IEnumerable
prescribes an operation GetEnumerator that returns an enumerator of type
IEnumerator