Код: Выделить всё
Thing1Я хочу избежать этого распределения, но я также не хочу указывать несколько списков (один на тип структуры). Есть ли способ сделать это чисто и эффективно? < /P>
interface IThing
{
void DoThing();
}
struct Thing1 : IThing
{
public void DoThing(){}
}
struct Thing2 : IThing
{
public void DoThing(){}
}
List things;
void Initialize()
{
things = new List();
things.Add(new Thing1());
things.Add(new Thing2());
}
void Run()
{
foreach(IThing thing in things)
{
thing.DoThing(); //this allocates to the heap due underlying type being a struct
}
}
< /code>
Вы можете увидеть на изображении ниже, что существуют распределения памяти из строки 38.
< /p>
Другой пример с аталяциями памяти в линейке 43. < /p>
Описание. src = "https://i.sstatic.net/ginwrtqe.png"/>
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-struct-t
Мобильная версия