Вопрос скорее по C#, чем по Юнити, но какой способ

возращения значения или присваивания значения переменной private лучше?
1. Через properties
2. Через public method

5 ответов

26 просмотров

Компилятор из первого варианта сам сделает второй, так что разницы никакой, проще даже инкапсулировать через public int Data { get; set; }

Ilya Meyta
Компилятор из первого варианта сам сделает второй,...

не совсем, свойства сохраняются в метаданных, так что разница есть


не совсем, свойства сохраняются в метаданных, так ...

Можно подробнее, или ссылку где это изучить?

Ilya Meyta
Можно подробнее, или ссылку где это изучить?

Ну, если прям подробнее, то в ECMA-335, но если в кратце, то каждый тип в дотнете хранит информацию о своих членах. То есть какой бы язык не использовался, есть определённая стандартизированная форма, в которую всё скомпилируется. Свойства, методы, поля, они все различаются даже после компиляции. Некоторая информация стирается, некоторая остаётся доступной. Это имеет значение, если используешь рефлексию. Можно получить все методы, все поля, все свойства у типа и т.д. Если объявлено свойство, то можно по названию легко использовать и геттер и сеттер

Ilya Meyta
Можно подробнее, или ссылку где это изучить?

Ещё, в C# 9 появился init-аксессор (который заменяет set), на методах такое не сделать. + в C# 11 должно появиться ключевое слово required, которое тоже только для свойств. Да и вообще конкретно от методов отличий много, в инициализаторах объектов можно использовать, в выражении with в новых версиях и т.п. Поэтому Get/Set методы вручную лучше не писать

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта