Generics in the .NET Compact Framework
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
The .NET Compact Framework provides core language feature compatibility for C# and Visual Basic in the implementation of generics and generic collections.
The following differences apply between generics in the .NET Compact Framework and in the full .NET Framework:
-
Expansive generic recursion through fields is not supported. For example, the following C# field declaration is not supported:
class MyData<T> { MyData<MyData<T>> field; }
Other kinds of generic recursion are supported, such as the following C# class declarations:
class C : IComparable<C> class C<T> : IComparable<C<T>>
-
The .NET Compact Framework does not validate constraints for normal execution in the absence of a verifier. Reflection will still verify the constraints when binding to generic parameters.
-
The number of generic parameters you can use is limited to eight.
-
The .NET Compact Framework provides limited reflection functionality for generic types and methods, sufficient for supporting C# and Visual Basic runtime and class library dependencies.