以下は、単純な C++/CLI の例です。
// TestCLR.cpp : main project file.
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
System::Collections::Generic::List<String^> TestList;
for(int i = 0; i < 10 ; i++)
{
TestList.Add(i.ToString());
}
for each(String^% st in TestList)
{
st += "TEST";
Console::WriteLine(st);
}
for each(String^ st in TestList)
{
Console::WriteLine(st);
}
return 0;
}
次の出力が得られます。
0TEST
1TEST
2TEST
3TEST
4TEST
5TEST
6TEST
7TEST
8TEST
9TEST
0
1
2
3
4
5
6
7
8
9
つまり、追跡ポインターを使用してその値を「TEST」に変更しても、TestList内の値は変更されません。
値が永続的に変更されるようにするには、上記のスニペットで何を変更する必要がありますか?