Thanks for the example. In my earlier posts, I neglected to point out that C# does support a variant of generic programming; since everything is be derived from the type "object", an object reference can point to any type in the type system. This means you can write a collection that stores any type, and you can write object persistance code (though serialization is built into the framework, so you don't need to). This is type safe, but it isn't compile-time typesafe; that would be one of the benefits of a real generics implementation.