Главная страница
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-1375696096
Света
2013-08-05 13:48
2014.05.25
Точный таймер


3-1298273047
Александр Т
2011-02-21 10:24
2014.05.25
Сгруппировать объединение...


2-1375773621
Санек
2013-08-06 11:20
2014.05.25
Кодировка письма


2-1375710622
Света
2013-08-05 17:50
2014.05.25
Ускорение свободного падения


15-1384765946
KeyMouse
2013-11-18 13:12
2014.05.25
KVM бывают разные?