Форум: "Начинающим";
Текущий архив: 2014.05.25;
Скачать: [xml.tar.bz2];
ВнизПроверка на существование Найти похожие ветки
← →
NewOne (2013-08-04 20:02) [0]В чем отличие проверки "a <> nil" и "Assigned(a)" ?
← →
Anatoly Podgoretsky © (2013-08-04 20:11) [1]Не то ни другое не проверяет существование.
Код Assigned легко посмотреть по исходникам.
← →
DVM © (2013-08-04 20:22) [2]
> NewOne (04.08.13 20:02)
> В чем отличие проверки "a <> nil" и "Assigned(a)" ?
http://docwiki.embarcadero.com/Libraries/XE2/en/System.Assigned
← →
NewOne (2013-08-04 20:30) [3]
> DVM © (04.08.13 20:22) [2]
Значит разницы получается никакой нет?
> Anatoly Podgoretsky © (04.08.13 20:11) [1]
Кажется понял, это будет просто проверкой присвоен ли переменной "a" какой-то объект?
То есть в этом коде сам объект просто "потеряется" и к нему больше нельзя будет получить доступ?var
a: TNewObject;
begin
a := TNewObject.Create;
a := nil;
end;
← →
Jeer © (2013-08-04 23:41) [4]Да.
← →
brother © (2013-08-05 06:15) [5]а утечка? объект то не уничтожили...
← →
icWasya © (2013-08-05 09:46) [6]Есть небольшая разница в таком случае
type TTestFunc = Function : Pointer;
var
a: TTestFunc;
begin
a := Func1;
if a <> nil then; // здесь будет вызов функции и проверка результата на nil
if Assigned(a) then;// а здесь проверка переменной a на nil
end;
← →
Inovet © (2013-08-05 11:01) [7]> [6] icWasya © (05.08.13 09:46)
Желательно создавать там же, где и удалять. Ещё брать работу с зозданным в блок try, удалять в finally.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.05.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c