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

Вниз

Свойства класса...   Найти похожие ветки 

 
Chlavik ©   (2003-10-30 18:18) [0]

Меня интересует такой вопрос... Есть некий класс
TMyClass = class
у него есть свойство например MyTag
так вот есть ли смысл писать
public
property MyTag:integer write FMyTag read Fmytag; // Понятно что в Private FmyTаg:integer;
Нельзя ли сразу в Public обьявить MyTag:integer и внутри класса обращатся к ней...
Короче есть ли разница ?

TMyClass = class
private
FmyTаg:integer;
public
property MyTag:integer write FMyTag read Fmytag;
end;

или

TMyClass = class
public
MyTag:integer;
end;



 
Skier ©   (2003-10-30 18:23) [1]

>Chlavik © (30.10.03 18:18)

> Короче есть ли разница ?

Есть. И главная - выполнение некоторого кода при чтении(read)/записи(write) св-ва


 
Юрий Федоров ©   (2003-10-30 18:24) [2]

Разница есть.
Ты не сможешь работать со св-вом как с Var параметром при передаче в процедуры, не сможешь с ним работать по указателю
(например читать в него из потока)


 
Digitman ©   (2003-10-30 18:25) [3]


> Нельзя ли сразу в Public обьявить MyTag:integer и внутри
> класса обращатся к ней...


можно. ничто этому не мешает.


> Короче есть ли разница ?


есть.

любой код, зная ссылку на объект класса TMyClass, в случае с public может в любое время изменить это public-свойство, что может повлиять на работу самого объекта TMyClass, если он об этом не подозревает и считает, что имеет монопольное право на изменение значения этого поля


 
Chlavik ©   (2003-10-30 19:00) [4]

НУ в случае property myTag:integer read GetMytag write SetMyTag
это понятно что я могу выполнить еще некоторые операции напрмер там Refresh что то..
А вот если просто это свойсвто это тображение некоторой переменной в классе..?


 
Юрий Федоров ©   (2003-10-30 19:43) [5]

переменных в Public секции быть не должно.
Так же как не должно быть имен Unit1 или Form1


 
Иван Шихалев ©   (2003-10-30 20:55) [6]


> переменных в Public секции быть не должно.
> Так же как не должно быть имен Unit1 или Form1


Абсолютно согласен. Но не с формулировкой. Нельзя потому, что нельзя - даже для трехлетних детей не "канает".



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-41315
iNew
2003-10-31 09:04
2003.11.13
Вопрос по заполнению динамического массива.


3-41091
Vick
2003-10-23 10:16
2003.11.13
TADODataSet.Sort := ....


1-41326
UnixManiac
2003-10-31 01:08
2003.11.13
Не хочет работать TMediaPlayer


7-42200
Карелин Артем
2003-08-25 13:59
2003.11.13
Сервис и иконка.


3-41000
Patrick
2003-10-16 10:21
2003.11.13
Проблема с ApplyUpdates