Не пытайтесь использовать указатели в C #, как это.Если вы переносите код C ++, который использует указатели в качестве ссылок, вместо этого используйте ссылочные типы.Ваш код не будет работать вообще;«new» не выделяет структуры из кучи, с одной стороны, и даже если он это сделал, указатели должны быть закреплены на месте в C #;C # - это язык для сборки мусора.
Короче говоря никогда не используйте unsafe
, если вы не полностью понимаете все, что нужно знать об управлении памятью в C # .Вы отключаете систему безопасности, которая должна вас защитить, и поэтому вы должны знать, что делает эта система безопасности.
Код должен быть:
public class Temp // safe, not unsafe
{
public class Node // class, not struct
{
public Node Left { get; set; } // properties, not fields
public Node Right { get; set; }
public int Value { get; set; }
}
public Temp()
{
Node node = new Node();
node.Left = null; // member access dots, not pointer-access arrows
node.Right = null;
node.Value = 10;
}
}