Быстрый вопрос.Может ли объект выпадать из сферы действия?
Рассмотрим этот код
public class Tile
{
public Collision Collision;
public Tile()
{
Collision = new Collision(this);
}
public ~Tile()
{
CollisionHandler.Remove(Collision);
}
}
public class Collision
{
public Collision()
{
CollisionHandler.Add(this);
}
}
public class Main
{
public Main()
{
Test1();
Test2();
}
public void Test1()
{
Tile[,] tiles = new Tile[20,20];
tiles[0,0] = new Tile();
tiles[0,0] = new Tile();
//Would calling the above call the old Tile's destructor?
}
public void Test2()
{
Tile[,] tiles = new Tile[20,20];
tiles[0,0] = new Tile();
Tile t = new Tile();
tiles[0,0] = t
//Would calling the above call the old Tile's destructor?
}
}
Теперь, когда я бегу Test1
бы старый Tile
«s финализации назвать? Как насчет Test2
?
FIrstly: они называются «финализаторы» на C#. Они не то же самое. Во-вторых, что мешает вам проверить это самостоятельно? –
Я нахожусь на своем телефоне на самолете, хотел знать, потому что я грубо чернил некоторые функции. – redcodefinal