Generics Sample (C#)
This sample shows how to create a custom generic list class that has a single type parameter, and how to implement IEnumerable<T> to enable foreach iteration over the contents of the list. The sample also shows how client code creates an instance of the class by specifying a type argument, and how constraints on the type parameter enable additional operations to be performed on the type arguments.
For an example of a generic collection class that implements an iterator block, see How to: Create an Iterator Block for a Generic List (C# Programming Guide).
To get samples and instructions for installing them
Do one or more of the following:
On the Help menu, click Samples.
The Readme displays information about samples.
Visit the Visual Studio 2008 Samples Web site. The most recent versions of samples are available there.
Locate samples on the computer on which Visual Studio is installed. By default, samples and a Readme file are installed in drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid. For Express editions of Visual Studio, all samples are located online.
For more information, see Visual Studio Samples.
Security Note: |
---|
This sample code is intended to illustrate a concept, and it shows only the code that is relevant to that concept. It may not meet the security requirements for a specific environment, and it should not be used exactly as shown. We recommend that you add security and error-handling code to make your projects more secure and robust. Microsoft provides this sample code "AS IS" with no warranties. |
To build and run the Generics sample within Visual Studio
- On the Debug menu, click Start Without Debugging.
To build and run the Generics sample from a command prompt
Type the following at the command prompt:
csc generics.cs generics
Comments
This sample is provided for demonstration and is not intended for use in production code without modification. For production quality code, we strongly recommend that you use the collection classes in the System.Collections.Generic namespace whenever possible.