One operation is to retrieve a default value for a type parameter. For a reference type, the default value is always the null reference, whereas for value types it’s a value with all-zero content. This is something the CLR can meaningfully provide as an operation that makes sense for any type parameter used. In C# terms, this is realized using the
int zero = default(int);string @null = default(string);T @default = default(T); // could be null, could be all-zero
One place that comes to mind where this can be put to handy use is inside constructors for generic types, initializing fields of a generic parameter type. This is a bit far-fetched, though, because the default ...