Size: a a a

2020 May 15

A

Andrew in unity3d.ru
шта
источник

YK

Yevhen Kazmin in unity3d.ru
Цитата "DO use PascalCasing in field names."
источник

YK

Yevhen Kazmin in unity3d.ru
Да и вообще если пару лет поработать с разными библиотеками, то начинаешь замечать закономерности
источник

YK

Yevhen Kazmin in unity3d.ru
Andrew
то есть ты не именно про поле, а про геттер-сеттер методы
Я о том что так писать плохо:

public int Value;

А так хорошо

publix int Value { get; set; }
источник

YK

Yevhen Kazmin in unity3d.ru
Ведь публичное поле означает что извне могут перевести объект в невалидное состояние, например в поле int Age могут присвоить отрицательное значение или значение больше 1000.
источник

YK

Yevhen Kazmin in unity3d.ru
И ты об этом даже не узнаешь
источник

A

Andrew in unity3d.ru
Yevhen Kazmin
Я о том что так писать плохо:

public int Value;

А так хорошо

publix int Value { get; set; }
так с этим никто не спорит, но в целом значимость геттеров/сеттеров преувеличена, в 99.9% случаев они просто устанавливают/возвращают значение. Проблемы будут только если твой код кто-то заюзает, и ты вдруг вспоминаешь, что неплохо бы валидацию впилить на метод
источник

YK

Yevhen Kazmin in unity3d.ru
Автопроперти компилятор заменяет полями, а значит от использования пропертей везде одни только плюсы
источник

YK

Yevhen Kazmin in unity3d.ru
Ну и всякие FluentValidation вроде как со свойствами работают, не с полями
источник

YK

Yevhen Kazmin in unity3d.ru
Но юнити не воспринимает свойства и в редактор только поля переносит
источник

YK

Yevhen Kazmin in unity3d.ru
Хотелось бы свой движок написать и чтоб кодить тоже на шарпе, но свой il2cpp писать лень
источник

YK

Yevhen Kazmin in unity3d.ru
А чистый Шарп (дотнет кор) в полтора раза примерно медленнее плюсов
источник

YK

Yevhen Kazmin in unity3d.ru
А моно так вообще раза в 4
источник

MK

Maksym Kriukov in unity3d.ru
В автопроперти так же нет никакой валидации, он ничем не лучше публичной переменной
источник

RM

Roman Mindiashvili in unity3d.ru
Yevhen Kazmin
Я о том что так писать плохо:

public int Value;

А так хорошо

publix int Value { get; set; }
А разве в случае использования автосвойства, ты узнаешь что кто-то меняет поле, если оставишь set без обработки?
источник

RM

Roman Mindiashvili in unity3d.ru
Если обработку поставишь, то при компиляции это уже будет функцией, разве нет?
источник

RM

Roman Mindiashvili in unity3d.ru
Просто , получается, проще будет проверить, доработать в случае чего, если будет стоять свойство , а не поле
источник

AS

Anton Smetanin in unity3d.ru
Yevhen Kazmin
Автопроперти компилятор заменяет полями, а значит от использования пропертей везде одни только плюсы
Далеко не всегда заменяет
источник

AS

Anton Smetanin in unity3d.ru
interface ISuk
{
   float Vitality { get; set; }
}

class Suk : ISuk
{
   public float Vitality { get; set; }
}
источник

AS

Anton Smetanin in unity3d.ru
Тут виртуальные функции получатся
источник