#c#
#c#
Вопрос:
Вот код, который у меня есть:
public class BaseButtonSheet : PopupBase
{
public BaseButtonSheet()
{
BindingContext = new BaseButtonSheetViewModel();
contentStack.Children.Add(new PopupHeaderLabel("Screen Options"));
grid.Children.Add(new BaseButton("Add Deck", "AddCmd"), 0, 0);
contentStack.Children.Add(grid);
}
}
public class PopupBase : Rg.Plugins.Popup.Pages.PopupPage
{
public StackLayout contentStack;
public Grid grid;
public PopupBase()
{
В чем я не уверен, так это в том, является ли это более распространенным и есть ли преимущество в создании contentStack и grid в качестве свойств, потому что я буду обращаться к ним из другого класса.
Комментарии:
1. Эмпирическое правило гласит, что общедоступные поля являются плохими (если они не являются константами или статическими полями только для чтения), и все, что является общедоступным, должно быть инкапсулировано в свойство.
Ответ №1:
Поскольку они общедоступны, я бы использовал свойства.
Смотрите это:
Как правило, вы должны использовать поля только для переменных, которые имеют закрытый или защищенный доступ. Данные, которые ваш класс предоставляет клиентскому коду, должны предоставляться с помощью методов, свойств и индексаторов
Ответ №2:
Помимо рекомендаций Microsoft, есть преимущества для переноса доступа к переменной в properties.
Вы можете изменить способ реализации свойства в наследующем классе.
например, вы могли бы иметь AdvancedButtonSheet и переопределить способ извлечения свойства contentStack, предоставляя дополнительные преимущества для ваших расширенных кнопок, просто вызвав свойство «same».