Re[4]: Инициализатор свойств
От: WolfHound  
Дата: 28.07.12 22:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Добавлю к словам Хардкейса, что Accessor еще неудобен при рефакторинге. Можно было бы рефекторинг переименования обучить наличию этой макры, но это хардкод.

Можно делать в общем виде. Но это уже в Н2.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Инициализатор свойств
От: _NN_  
Дата: 29.07.12 07:44
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, _NN_, Вы писали:


_NN>>Есть предложения по улучшению этого дела ?


Z>А можно озвучить причины ограничения только на автосвойства?


Буду рад выслушать как это сделать для обычных свойств.
У ручных свойств не обязано быть переменной вообще, скажем:
public X : int { get { 1 } set { } }


Что здесь будет означать default ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Инициализатор свойств
От: Ziaw Россия  
Дата: 29.07.12 08:31
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Буду рад выслушать как это сделать для обычных свойств.


Точно так же как и для любых других. Вызвать сеттер в конструкторе. Других способов сделать это я не вижу.

_NN>У ручных свойств не обязано быть переменной вообще, скажем:

_NN>
_NN>public X : int { get { 1 } set { } }
_NN>


_NN>Что здесь будет означать default ?


Да ничего Что, без default можно мало бессмысленных конструкций написать?
Re[4]: Инициализатор свойств
От: _NN_  
Дата: 29.07.12 08:49
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, _NN_, Вы писали:


_NN>>Буду рад выслушать как это сделать для обычных свойств.


Z>Точно так же как и для любых других. Вызвать сеттер в конструкторе. Других способов сделать это я не вижу.

Интересно, можно подумать над этим.
Кто еще поддерживает эту фичу ?

Добавление этого поведения усложнит код, готов помочь это реализовать ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Инициализатор свойств
От: _NN_  
Дата: 31.07.12 13:04
Оценка:
Здравствуйте, _NN_, Вы писали:

А вот слово "default" всех устраивает ?
Может обозвать как-то покороче типа "init" ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Инициализатор свойств
От: fddima  
Дата: 31.07.12 13:09
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А вот слово "default" всех устраивает ?

_NN>Может обозвать как-то покороче типа "init" ?
Мне лично default по душе. В дельфях он тоже default.
Re[2]: Инициализатор свойств
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.07.12 16:59
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А вот слово "default" всех устраивает ?


default нормально. Ты бы лучше в мастер это дело смерджил.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Инициализатор свойств
От: _NN_  
Дата: 31.07.12 17:50
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, _NN_, Вы писали:


_NN>>А вот слово "default" всех устраивает ?


VD>default нормально. Ты бы лучше в мастер это дело смерджил.


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

Только еще поддержка студии нужна.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Инициализатор свойств
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.07.12 17:52
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Да я вот смотрю как замутить поддержку выражения без скобок.

_NN>Если не получится , то замерджу как есть

Что там может не получиться? Просто вызови парсинг выражения после обнаружения default.

_NN>Только еще поддержка студии нужна.


Это да. Не помешало бы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Инициализатор свойств
От: _NN_  
Дата: 01.08.12 06:42
Оценка: 30 (2)
Здравствуйте, _NN_, Вы писали:

Итак удалось побороть парсер и теперь поддерживаются простые выражения в блоках: add, remove, get, set, default:
public X : int { get; set; default 2 }
public Y : int { get 10 }
public Z : int { get 10; set _ = value; }


Что еще осталось:
1. Поддержка студии.
2. default для обычных свойств.

Есть желающие помочь ?

P.S.
Тут появилась мысль, а может все функции так обрабатывать ?
{nemerle]
class A
{
F() : int 1;
G() : string "a";
}
{/nemerle]
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Инициализатор свойств
От: nCdy http://nCdy.org/
Дата: 01.08.12 07:54
Оценка:
Поддерживаю 2ой вариант
But I don't really mean it
Re[3]: Инициализатор свойств
От: hardcase Пират http://nemerle.org
Дата: 09.08.12 10:32
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А обсолт пашет на макрах?


Конечно. Гадим в аутпут из макры: Message.Warning("Accessor macro is obsolete, please use auto-properties instead")
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Инициализатор свойств
От: _NN_  
Дата: 09.08.12 11:02
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, _NN_, Вы писали:


_NN>>Есть предложения по улучшению этого дела ?


H>Есть предложение заобсолетить макру Accessor в пользу использования инициализаторов.


А как же код компилятора ? Его кто переделывать будет ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Инициализатор свойств
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.08.12 18:04
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Конечно. Гадим в аутпут из макры: Message.Warning("Accessor macro is obsolete, please use auto-properties instead")


Не спорделаротивно
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Инициализатор свойств
От: hardcase Пират http://nemerle.org
Дата: 14.08.12 08:48
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А как же код компилятора ? Его кто переделывать будет ?


Я и передалаю на досуге
/* иЗвиНите зА неРовнЫй поЧерК */
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.