Цитата:
|
Не совсем понял результат выполнения данного кода.
|
В первой строке меняется значение свойства bold объекта TextFormat, который хранится в данном экземпляре TextField. При этом сам TextField ничего об изменении не знает, ведь его собственным свойствам никакие новые значения не присваивались и его методы не вызывались.
Во второй строке вызывается сеттер самого TextField: "_textField.defaultTextFormat = " и ему отдается объект TextFormat, полученный из геттера _textField.defaultTextFormat. То есть тот самый объект, в котором значение свойства .bold теперь true. Cеттер это функция, она не просто присваивает этот ТекстФормат внутреннему хранилищу (он итак там лежит). Сеттер делает что-нибудь еще: считывает свойства переданного ему объекта ТекстФормат и "применяет" их "прямо сейчас".
(может пример с ТекстФорматом и не совсем корректен ввиду того что там не требуется это "прямо сейчас", но вот если ты захочешь рычажком слайдера менять длину бороды в редакторе персонажа, то просто менять одно из свойств объекта Гендер будет недостаточно, чтобы видеть изменение в реальном времени).
Цитата:
|
Что будет предпочтительнее?
|
Знать, что в этом месте программы тебе нужны настройки внешности персонажа и они лежат в объекте класса Гендер. Не надо чрезмерно увлекаться "String-типизацией" в ущерб strong-типизации. Не лишай себя удовольствия получать сообщения об ошибках на этапе компиляции, а не где-то в глубине игрового процесса.