|
|
#27 |
|
Участник
|
Допустим есть код
X++: void f() { Ascii io = new AsciiIo(@'c:\myFile.txt','r'); io.read(); } При каждом присваивании поля класса надо пробежать по всем достижимым из поля класса объектам и посмотреть не образовалось ли новых циклов (типа A ссылается на B, который ссылается на С которрый ссылается обратно на А) и увеличить счетчик циклов. А припотери ссылки - уменьшить. В результате все тормозит на больших графах объектов. В .NET такого обязательсятва нет - мустор собирается только время от времени или если память кончается. Но при этом дорогие ресурсы (типа открытых файлов) приходится освобождать явно X++: Ascii io=new AsciiIO... try { io.read(); } finally { io.Dispose(); } X++: using(AsciiIO io= new AsciiiIO(...))
{
io.read();
} |
|
|