#323 – A Generic Class is a Template for a Class

A generic class is a class that takes one or more type parameters, which it then uses in the definition of the class.  It can be thought of as a template for a class.

    public class ThingContainer<TParam>
    {
        private TParam theThing;

        public void SetThing(TParam newValue)
        {
            theThing = newValue;
        }
    }

You use a generic class by specifying a type for each of the type parameters.

            ThingContainer<int> intContainer = new ThingContainer<int>();
            intContainer.SetThing(5);

            ThingContainer<Dog> dogContainer = new ThingContainer<Dog>();
            dogContainer.SetThing(new Dog("Kirby", 5));

In this example, we use a generic class to store an object of an arbitrary type.  We use one version of the class to store an int and another to store a Dog.  Notice that wherever we use the name of the generic class to define an instance, we need to supply a typename (e.g. int, Dog) as a parameter.

Advertisements

About Sean
Software developer in the Twin Cities area, passionate about software development and sailing.

17 Responses to #323 – A Generic Class is a Template for a Class

  1. Pingback: #324 – A Generic Class Can Have More than One Type Parameter « 2,000 Things You Should Know About C#

  2. Pingback: #326 – Generic Type vs. Constructed Type « 2,000 Things You Should Know About C#

  3. Pingback: #534 – What Good Are Generics? « 2,000 Things You Should Know About C#

  4. Pingback: #535 – Creating a Generic Struct « 2,000 Things You Should Know About C#

  5. Pingback: #536 – Using a Generic Interface « 2,000 Things You Should Know About C#

  6. Pingback: #1,027 – Type Parameters vs. Type Arguments in a Generic Class | 2,000 Things You Should Know About C#

  7. Pingback: #1,028 – Generic Types vs. Generic Methods | 2,000 Things You Should Know About C#

  8. Pingback: #1,029 – How to Define a Constructor in a Generic Type | 2,000 Things You Should Know About C#

  9. Pingback: #1,030 – Requiring Generic Type Parameters to Derive from a Specified Class | 2,000 Things You Should Know About C#

  10. Pingback: #1,031 – Requiring Generic Type Parameters to Implement an Interface | 2,000 Things You Should Know About C#

  11. Pingback: #1,032 – Requiring Generic Type Parameters to Be a Reference or Value Type | 2,000 Things You Should Know About C#

  12. Pingback: #1,033 – Requiring a Generic Type Parameter to Have a Parameterless Constructor | 2,000 Things You Should Know About C#

  13. Pingback: #1,039 – Deriving from a Generic Class | 2,000 Things You Should Know About C#

  14. Pingback: #1,043 – Deriving from a Self-Referencing Constructed Type, part II | 2,000 Things You Should Know About C#

  15. Pingback: #1,070 – A Generic Type Can Be Compiled | 2,000 Things You Should Know About C#

  16. Pingback: #1,135 – Overloading a Generic Class | 2,000 Things You Should Know About C#

  17. Simplest explanation of a generic class ever! I wish I had discovered this when I was first learning about generics!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: