Size: a a a

2019 November 23

НЖ

Николай Журавлев... in CODE BLOG / C#
вот да,про это тоже хотел спросить:можно ли прямо в классе значения выставлять?
источник

in CODE BLOG / C#
Например у твоего персонажа есть Хп, при вызове какого метода Хп убывает, но если переменная с Хп будет публична, то кто-то обязательно этим воспользуется и сделает себя бессмертным
Но если Хп записать как public int HP {get; private set;} =50; то уже из вне твои Хп не поменяют, ибо set приватный
источник

SB

Sergey Benzenko in CODE BLOG / C#
Alexander
Кто может подсказать  новичку что значит запечатанный не изменяемый класс? Т е все поля должны быть readonly ?
Telegram
.NET Разработчик
День сто двадцать второй. #ВопросыНаСобеседовании
Самые часто задаваемые вопросы на собеседовании по C#
11. Что такое закрытый класс в C#?
Закрытые классы используются для ограничения наследования в объектно-ориентированном программировании. Класс, определёный как закрытый, не может быть унаследован.
В C# для определения закрытого класса используется модификатор sealed. Если создать класс производный от закрытого класса, то компилятор выдаст ошибку.
Все структуры закрыты. Вы не можете унаследовать класс из структуры.

Закрытые методы и свойства
Вы также можете использовать модификатор sealed для метода или свойства, которое переопределяет виртуальный метод или свойство базового класса. Это позволяет вам разрешать классам наследовать от вашего класса, но не позволяет другим разработчикам, использующим ваши классы, переопределять определенные виртуальные методы и свойства.
class X
{
 protected virtual void F()
 {
   Console.WriteLine("X.F");
 }
 protected virtual void F2()
 {
   Console.WriteLine("X.F2");…
источник

AN

Alexander Neutov in CODE BLOG / C#
Можно все
Вопрос в том зачем
Вот смотри
Берешь ты просто переменную и ассайнишь ее в лоб
И допустим даже ее можно менять снаружи
Но потом ты понимаешь что хочешь ограничить ее значение скажем, вот неидолжно оно больше 5000 быть
С полем это уже так легко не проделаешь
Свойство это обёртка над полем
источник

AN

Alexander Neutov in CODE BLOG / C#
По сути добавляет 2 метода через которые ты модешь получать значение и назначать его
И опционально на это докрутить модификаторы доступа и логику
источник

AN

Alexander Neutov in CODE BLOG / C#
Обычно напрямую поля используют только внутри класса
источник

I

Ivan in CODE BLOG / C#
Alexander Neutov
Можно все
Вопрос в том зачем
Вот смотри
Берешь ты просто переменную и ассайнишь ее в лоб
И допустим даже ее можно менять снаружи
Но потом ты понимаешь что хочешь ограничить ее значение скажем, вот неидолжно оно больше 5000 быть
С полем это уже так легко не проделаешь
Свойство это обёртка над полем
шарп позволяет легко изменить поле на свойство, синтаксис не нарушится
источник

AN

Alexander Neutov in CODE BLOG / C#
Само собой
источник

4

4g in CODE BLOG / C#
Alexander Neutov
Просто нефиг давать другому классу доступ к внутренностям, изменению состояния и прочему
++++
источник

I

Ivan in CODE BLOG / C#
Alexander Neutov
Обычно напрямую поля используют только внутри класса
вопрос в автосвойствах, все их рекомендуют, но что они дают - пару лишних методов и кучу вызовов, что думаешь насчёт того что это оверхед?
источник

AN

Alexander Neutov in CODE BLOG / C#
Ivan
вопрос в автосвойствах, все их рекомендуют, но что они дают - пару лишних методов и кучу вызовов, что думаешь насчёт того что это оверхед?
В ряде случаев избыточно да
Но не думаю что накладные расходы велики
Хотя надо бы прикинуть вообще
источник

SB

Sergey Benzenko in CODE BLOG / C#
Ivan
вопрос в автосвойствах, все их рекомендуют, но что они дают - пару лишних методов и кучу вызовов, что думаешь насчёт того что это оверхед?
1. Потом может понадобиться добавить проверку.
2. Свойства используются в ОРМ системах, всяких сериализациях и прочем.
3. Большинство вызовов методов в таком случае оптимизирует компилятор, так что оверхеда особого нет.
источник

I

Ivan in CODE BLOG / C#
Sergey Benzenko
1. Потом может понадобиться добавить проверку.
2. Свойства используются в ОРМ системах, всяких сериализациях и прочем.
3. Большинство вызовов методов в таком случае оптимизирует компилятор, так что оверхеда особого нет.
по 1 пункту это противоречит тенденциям
источник

I

Ivan in CODE BLOG / C#
Ivan
по 1 пункту это противоречит тенденциям
по 2му это особенности никуда не деться
источник

SB

Sergey Benzenko in CODE BLOG / C#
Ivan
по 1 пункту это противоречит тенденциям
В смысле?
источник

I

Ivan in CODE BLOG / C#
Ivan
по 2му это особенности никуда не деться
по 3 надо глянуть в IL, но скорее всего остаются методы, иначе рефлексия поедет
источник

I

Ivan in CODE BLOG / C#
Sergey Benzenko
В смысле?
kiss, не надо закладываться на потом и может быть когда-то, синтаксически свойства и поля совместимы, когда понадобится, тогда и заменишь одно другим
источник

AN

Alexander Neutov in CODE BLOG / C#
Ivan
kiss, не надо закладываться на потом и может быть когда-то, синтаксически свойства и поля совместимы, когда понадобится, тогда и заменишь одно другим
Тут вопрос в том насколько вообще стоит об этом думать
источник

NK

ID:886596528 in CODE BLOG / C#
всем проивет подскажите как сделать так чтобы когда вывелся текст... через 5 сек чтобы он исчезал
источник

AN

Alexander Neutov in CODE BLOG / C#
В контексте поля и свойства
источник