In fact, the C # template is not powerful, and some code can basically demonstrate the C # template capabilities. And the C # template has no more capabilities. When I first came into contact with the C #2.0 template, I was excited. In a few days, I felt that my capabilities were still very limited. This may also reflect a simple and easy-to-use principle. After all, C # is a popular language!
// Unlike C ++, you need to use template <class T, class V>
// Or template <typename T, typename V> declares template parameters
Public class A <T, V>
{
Public static int I = 0;
}
// Partial instantiation
Public class A <T>: A <T, object>
{
Public static new int I = A <T, object>. I + 1;
}
// Partial instantiation. The constraint T must implement the interface ICollection <T>
Public class C <T>: A <T, string> where T: ICollection <T>
{
}
Public class D
{
// Templated method. The constraint T must have a default constructor.
Public t f <T> () where T: new ()
{
Return new T ();
}
}