Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.05.25;
Скачать: CL | DM;

Вниз

Проверка на существование   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.005 c
2-1375709808
savek
2013-08-05 17:36
2014.05.25
[Warning] BaseUnit.pas(558): W1000 Symbol Resume is deprecated


15-1384535475
БарЛог
2013-11-15 21:11
2014.05.25
Идея: распределённый торрент-диск


15-1385038996
bodygans
2013-11-21 17:03
2014.05.25
ПАТЕН


2-1375709817
Рашид
2013-08-05 17:36
2014.05.25
SQL - Вопрос


15-1384806604
Юрий
2013-11-19 00:30
2014.05.25
С днем рождения ! 19 ноября 2013 вторник