Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 25   вперед  Ctrl
 Re: Автосвойства  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26465
listtoview
skyANA,

кстати, получается
если появилось свойство с сетером, то надо прошерстить код и заменить использование поля на свойство

Нет. Логика внутри класса как попало может использовать поля. Главное чтобы в итоге состояние было согласованное.
15 мар 19, 15:53    [21834003]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
так свойство и не должно быть волотильно, это же хорошор
15 мар 19, 15:54    [21834006]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
skyANA
listtoview
skyANA,

кстати, получается
если появилось свойство с сетером, то надо прошерстить код и заменить использование поля на свойство

Нет. Логика внутри класса как попало может использовать поля. Главное чтобы в итоге состояние было согласованное.

юзайте свойство, и оно гарантированно будет согласованно
не?
15 мар 19, 15:59    [21834011]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38435
listtoview
Petro123,

хочется конкретики
а то один одно говорит
другой другое
так и будет когда чел кидается в крайности.
Использовать и св-ва и поля.
Консенсус?
)))
15 мар 19, 16:14    [21834026]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26465
listtoview
skyANA
пропущено...

Нет. Логика внутри класса как попало может использовать поля. Главное чтобы в итоге состояние было согласованное.

юзайте свойство, и оно гарантированно будет согласованно
не?

Снаружи не должно быть доступа напрямую к полям класса. Поэтому наружу торчат только свойства и методы.
Внутри естественно никто не запрещает юзать поля.
15 мар 19, 16:15    [21834027]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
skyANA
listtoview
пропущено...

юзайте свойство, и оно гарантированно будет согласованно
не?

Снаружи не должно быть доступа напрямую к полям класса. Поэтому наружу торчат только свойства и методы.
Внутри естественно никто не запрещает юзать поля.

ну вот я в конструкторе заюзал поле
а завтра появился хитрый сеттер на свойстве

получается лучше использовать свойства, всегда
15 мар 19, 16:37    [21834060]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2421
listtoview,

Послушай - какая тебе разница - поле или проперть?
Тебе нужно, чтобы после каждой отдельной операции - присваивание или получение - информации из класс состояние класса оставалось корректным. That's all.
Можешь этого добиться используя полЯ - делай, не можешь, необходимо что-до дополнительно контролировать - пропертя.
Дерзай - переделай следующую проперть в поле (это из строго типизированной DataRow, IsReadOnly -> nullable):
            public bool IsReadOnly
            {
                get {
                    if (Convert.IsDBNull(dr[FieldName.IsReadOnly]))
                        return false;
                    return Convert.ToBoolean(dr[FieldName.IsReadOnly]); }
                set { dr[FieldName.IsReadOnly] = value; }
            }
15 мар 19, 18:30    [21834205]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
PinkCat
Member [заблокирован]

Откуда:
Сообщений: 2421
listtoview,

а завтра появился хитрый сеттер на свойстве
-----
А для тебя - из вне класса - есть хоть малейшая разница?
15 мар 19, 18:31    [21834207]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 4710
listtoview
ну вот я в конструкторе заюзал поле
а завтра появился хитрый сеттер на свойстве

А послезавтра случился зомби-апокалипсис, и программы на сишарпе вдруг стали никому не нужны.
Во-первых, есть такая штука, как рефакторинг, и современные средства рефакторинга позволяют автоматически делать много чего - в т.ч. поля преобразовывать в свойства. Во-вторых, исходить надо из насущных обозримых проблем. Premature optimization, как говорил один товарищ, is the root of all evil.
15 мар 19, 19:27    [21834268]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
PinkCat
listtoview,

Послушай - какая тебе разница - поле или проперть?
Тебе нужно, чтобы после каждой отдельной операции - присваивание или получение - информации из класс состояние класса оставалось корректным. That's all.
Можешь этого добиться используя полЯ - делай, не можешь, необходимо что-до дополнительно контролировать - пропертя.
Дерзай - переделай следующую проперть в поле (это из строго типизированной DataRow, IsReadOnly -> nullable):
            public bool IsReadOnly
            {
                get {
                    if (Convert.IsDBNull(dr[FieldName.IsReadOnly]))
                        return false;
                    return Convert.ToBoolean(dr[FieldName.IsReadOnly]); }
                set { dr[FieldName.IsReadOnly] = value; }
            }

с преимуществами использования свойств перед полями все понятно
приведите лучше пример когда внутри класса удобнее использовать поле, а не свойство
16 мар 19, 21:26    [21834882]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38435
listtoview,5
Ты разбирай примеры что дают.
Уже было:
автор
Возьмём, к примеру, свойство у которого в сеттере возбуждается OnPropertyChanged. Я могу изменить свойство и с помощью него обновить значение в представлении, но если не хочу меня это свойство, я могу работать с полем напрямую и вызвать это событие только в конце выполнения.

Меняется поле при открытии программы, а событие не нужно возбуждать, т.к.юзверь ничего не менял.
16 мар 19, 21:39    [21834891]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38435
listtoview,
Properties это VIEW над полем с данными.
Нельзя говорить что одно лучше другого.
Завязывай.
16 мар 19, 21:48    [21834902]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
Petro123
listtoview,5
Ты разбирай примеры что дают.
Уже было:
автор
Возьмём, к примеру, свойство у которого в сеттере возбуждается OnPropertyChanged. Я могу изменить свойство и с помощью него обновить значение в представлении, но если не хочу меня это свойство, я могу работать с полем напрямую и вызвать это событие только в конце выполнения.

Меняется поле при открытии программы, а событие не нужно возбуждать, т.к.юзверь ничего не менял.

если надо в конце зарейзить, так добавьте эту логику в сеттер, в чем проблема то?
т.е если при изменении поля событие должно возникать не всегда, или после подготовки каких-то других полей, то эту логику нужно писать в сам сеттер, а не городить в разных местах класса
вообщем нужен пример кода
16 мар 19, 22:04    [21834929]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
Petro123
listtoview,
Properties это VIEW над полем с данными.
Нельзя говорить что одно лучше другого.
Завязывай.

get да
а set нет
я не говорю что одно лучше другого
я пытаюсь найти пример когда внутри класса удобнее использовать поле, а не свойство
пока вопрос открыт
16 мар 19, 22:07    [21834930]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38435
listtoview
Petro123
listtoview,5
Ты разбирай примеры что дают.
Уже было:
пропущено...

Меняется поле при открытии программы, а событие не нужно возбуждать, т.к.юзверь ничего не менял.

если надо в конце зарейзить, так добавьте эту логику в сеттер, в чем проблема то?
т.е если при изменении поля событие должно возникать не всегда, или после подготовки каких-то других полей, то эту логику нужно писать в сам сеттер, а не городить в разных местах класса
вообщем нужен пример кода

Не увиливай.
В сеттере логика изменения извне класса. Например от юзверя.
А внутри класса тебе не нужна логика. Например, map.Repaint().
Что тут непонятного то?
Или зачем валидировать поле дата, если мы дату ставим при запуске приложения? Программно?
А вот при установке даты от юзверя идеть сеттер с валидацией и событием.
16 мар 19, 23:54    [21834990]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38435
listtoview
я не говорю что одно лучше другого
я пытаюсь найти пример когда внутри класса удобнее лучше использовать поле
казуистика)
17 мар 19, 00:00    [21834994]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
Petro123
listtoview
пропущено...

если надо в конце зарейзить, так добавьте эту логику в сеттер, в чем проблема то?
т.е если при изменении поля событие должно возникать не всегда, или после подготовки каких-то других полей, то эту логику нужно писать в сам сеттер, а не городить в разных местах класса
вообщем нужен пример кода

В сеттере логика изменения извне класса. Например от юзверя.

а private set зачем придумали?
17 мар 19, 00:15    [21834998]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 1660
listtoview
Petro123
пропущено...

В сеттере логика изменения извне класса. Например от юзверя.

а private set зачем придумали?

Почитай уже документацию: Auto-Implemented Properties (C# Programming Guide)
17 мар 19, 10:03    [21835072]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38435
listtoview
а private set зачем придумали?
это же уже другой вопрос?
Например, ОРМ использует в Id ключах сущностях.
Не публичное изменение кода сущности.
17 мар 19, 13:33    [21835165]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
Дмитрий Мух
listtoview
пропущено...

а private set зачем придумали?

Почитай уже документацию: Auto-Implemented Properties (C# Programming Guide)

пишут юзайте свойства, и закрывайте если надо
а тут пишут что иногда удобнее поля
хотелось бы ссыль на документацию или пример когда поля удобнее чем свойства
18 мар 19, 09:31    [21835608]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3303
listtoview
Дмитрий Мух
пропущено...

Почитай уже документацию: Auto-Implemented Properties (C# Programming Guide)

пишут юзайте свойства, и закрывайте если надо
а тут пишут что иногда удобнее поля
хотелось бы ссыль на документацию или пример когда поля удобнее чем свойства

Попробуй это сделать с помощью свойств так, чтоб это было удобнее

    [StructLayout(LayoutKind.Explicit)]
    struct Color
    {
        [FieldOffset(0)]
        public byte A;
        [FieldOffset(1)]
        public byte R;
        [FieldOffset(2)]
        public byte G;
        [FieldOffset(3)]
        public byte B;
        [FieldOffset(0)]
        public int ARGB;
    }
18 мар 19, 13:12    [21835864]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26465
listtoview
Дмитрий Мух
пропущено...

Почитай уже документацию: Auto-Implemented Properties (C# Programming Guide)

пишут юзайте свойства, и закрывайте если надо
а тут пишут что иногда удобнее поля
хотелось бы ссыль на документацию или пример когда поля удобнее чем свойства

Хм...

listtoview: а private set зачем придумали?
Дмитрий Мух: почитай уже документацию
listtoview: пишут юзайте свойства, и закрывайте если надо...

На вопрос свой про private set Вы нашли ответ?
18 мар 19, 15:10    [21836078]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
skyANA
listtoview
пропущено...

пишут юзайте свойства, и закрывайте если надо
а тут пишут что иногда удобнее поля
хотелось бы ссыль на документацию или пример когда поля удобнее чем свойства

Хм...

listtoview: а private set зачем придумали?
Дмитрий Мух: почитай уже документацию
listtoview: пишут юзайте свойства, и закрывайте если надо...

На вопрос свой про private set Вы нашли ответ?

выделил
18 мар 19, 15:24    [21836103]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
listtoview
Member

Откуда:
Сообщений: 1776
Roman Mejtes
listtoview
пропущено...

пишут юзайте свойства, и закрывайте если надо
а тут пишут что иногда удобнее поля
хотелось бы ссыль на документацию или пример когда поля удобнее чем свойства

Попробуй это сделать с помощью свойств так, чтоб это было удобнее

    [StructLayout(LayoutKind.Explicit)]
    struct Color
    {
        [FieldOffset(0)]
        public byte A;
        [FieldOffset(1)]
        public byte R;
        [FieldOffset(2)]
        public byte G;
        [FieldOffset(3)]
        public byte B;
        [FieldOffset(0)]
        public int ARGB;
    }

в структуре памятью самому управлять что ли?
не юзал
я извиняюсь, а структуры вообще свойства поддерживают?
18 мар 19, 15:44    [21836139]     Ответить | Цитировать Сообщить модератору
 Re: Автосвойства  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26465
listtoview
skyANA
пропущено...

Хм...

listtoview: а private set зачем придумали?
Дмитрий Мух: почитай уже документацию
listtoview: пишут юзайте свойства, и закрывайте если надо...

На вопрос свой про private set Вы нашли ответ?

выделил

Вы не можете понять, когда закрывать свойства, а когда нет?
18 мар 19, 15:53    [21836151]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 25   вперед  Ctrl
Все форумы / WinForms, .Net Framework Ответить