#include "stdafx.h"
using namespace System;
using namespace System::Collections;
generic<typename T>
ref class MyClass
{
public:
MyClass(int N)
{
m_Array = gcnew array<T>(N);
}
static MyClass()
{
Console::WriteLine("static constructor");
}
void SetItem(int i, T t)
{
m_Array[i] = t;
}
T GetItem(int i)
{
return m_Array[i];
}
String^ GetItemStringValue(int i)
{
return m_Array[i]->ToString();
}
private:
array<T>^ m_Array;
};
void main()
{
MyClass<String^>^ myClass = gcnew MyClass<String^>(10);
myClass->SetItem(0, "test");
Console::WriteLine("{0}", myClass->GetItem(0));
// Value class specialization
MyClass<DateTime>^ myClass2 = gcnew MyClass<DateTime>(10);
myClass2->SetItem(0, DateTime::Today);
Console::WriteLine("{0}", myClass2->GetItem(0));
}
|