Установка объектов в Null/Nothing после использования в .NET
Еще одна причина, по которой memory-allocation не следует присваивать объектам c-sharp значение null после завершения memory-management работы с ними, заключается nulls в том, что это действительно .net может продлить их жизнь.
напр.
void foo()
{
var someType = new SomeType();
someType.DoSomething();
// someType is now eligible for garbage collection
// ... rest of method not using 'someType' ...
}
позволит csharp GC'ировать объект, на который c-sharp ссылается someType, после null вызова "DoSomething", но
void foo()
{
var someType = new SomeType();
someType.DoSomething();
// someType is NOT eligible for garbage collection yet
// because that variable is used at the end of the method
// ... rest of method not using 'someType' ...
someType = null;
}
может c#.net иногда сохранять объект живым null до конца метода. JIT will usually optimized away the assignment to null, так что c# оба бита кода в конечном memory-allocation итоге будут одинаковыми.
c#
.net
vb.net
memory-management
null
Установка объектов в Null/Nothing после использования в .NET
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.