Когда я должен использовать общедоступные/частные/статические методы? [закрытый]

Вместо

<tr *ngIf="locationType == Other">

Это должно быть

<tr *ngIf="newmp.locationType == 'Other'">
18
задан Josh Lee 28 January 2010 в 10:05
поделиться

4 ответа

private is for class members that you want only access within the class of the body, and in C# members are default set to private unless specified different

examples of when to use private:

class Account
{

  private int pin = 1090;
  public int Pin
  {
     get { return pin; }
  }
}

public on the other hand is the opposite, there are no restrictions with accessing public members, so when things that don't matter with the user having access to should be public.

static on the other hand has no relation to the two, because it doesn't deal with permission to methods, static on the other hand is a constant or type declaration. If the word static is applied to the class then every member in the class must be declared static.

examples of when to use static:

  static int birth_year= 1985

Modifiers in C# Reference will give you more detail of all modifiers in C# and examples of how they should be used

7
ответ дан 30 November 2019 в 08:10
поделиться

См. Модификаторы доступа (Руководство по программированию в C #) . Но было бы гораздо лучше, если бы вы приобрели приличную книгу по C # и OOP / OOD: это действительно основы информатики.

Короче говоря: модификаторы доступа способствуют инкапсуляции, что в основном означает, что каждый класс должен сохранять свои права доступа к себе. .

4
ответ дан 30 November 2019 в 08:10
поделиться

Это кажется более простым, чем вопрос, связанный выше. Чтобы правильно развиваться на языке ОО, вам необходимо выяснить, как разбить конечную цель на ряд объектов, которые работают вместе (даже содержат и расширяют друг друга) для достижения ряда целей. Эта абстракция имеет множество преимуществ, которые становятся очевидными, когда вы начинаете правильно реализовывать ОО-дизайн. Как вы уже сказали, вам понадобится новая книга по C #, если вы еще не знакомы с той частью, которая объясняет основы программирования O bject O .

0
ответ дан 30 November 2019 в 08:10
поделиться

Все должно быть конфиденциальным, если не доказано обратное. Разница между публичным и частным заключается в том, что предполагается поддерживать совместимым, а что не должно оставаться совместимым, что должно быть интересно миру и что не должно быть его делом.

Когда вы заявляете, что-то публичное, класс (и, следовательно, объект) делает сильное заявление: это мой видимый интерфейс, есть много других подобных, но это мой. Открытый интерфейс - это договорное соглашение, которое ваш класс экспортирует в остальной мир (что бы это ни значило) о том, что он может делать. Если вы измените общедоступный интерфейс, вы рискуете нарушить договор, принятый остальным миром в отношении класса.

С другой стороны, частные данные являются внутренними для класса. Он поддерживает функциональность, которую класс должен использовать для выполнения своей работы, передавая состояние объекта (если это метод) или сохраняя его внутреннее состояние (если это переменная). Вы можете взламывать и изменять частные данные класса сколько угодно, не нарушая контракт интерфейса, а это означает, что это дает вам широкую свободу для рефакторинга (например, для повышения эффективности внутреннего представления данных). Личные данные не являются частью интерфейса.

Защищенное - это то, что подразумевает открытость для повторной реализации. По возможности избегайте глубоко вложенных наследований. Вы рискуете сделать вещи очень сложными для обработки, так как ваш класс повторной реализации может испортить базовый класс.

Технически класс должен объявлять интерфейс (открытый) и реализацию (частный). Интерфейс вообще не должен иметь кода, просто делегируйте его частной логике «реализации». Вот почему в Java и C # у вас есть оператор интерфейса, который формализует концепцию чистого абстрактного класса в C ++.

Статический - это то, что логически находится в области вашего класса, но не зависит от состояния самого класса. Его следует использовать с осторожностью, когда это диктует шаблон проектирования (например, одноэлементный, фабричный метод).

Вы рискуете сделать вещи очень сложными для обработки, так как ваш класс повторной реализации может испортить базовый класс.

Технически класс должен объявлять интерфейс (открытый) и реализацию (частный). Интерфейс вообще не должен иметь кода, просто делегируйте его частной логике «реализации». Вот почему в Java и C # у вас есть оператор интерфейса, который формализует концепцию чистого абстрактного класса в C ++.

Статический - это то, что логически находится в области вашего класса, но не зависит от состояния самого класса. Его следует использовать с осторожностью, когда это диктует шаблон проектирования (например, одноэлементный, фабричный метод).

Вы рискуете сделать вещи очень сложными для обработки, так как ваш класс повторной реализации может испортить базовый класс.

Технически класс должен объявлять интерфейс (открытый) и реализацию (частный). Интерфейс вообще не должен иметь кода, просто делегируйте его частной логике «реализации». Вот почему в Java и C # у вас есть оператор интерфейса, который формализует концепцию чистого абстрактного класса в C ++.

Статический - это то, что логически находится в области вашего класса, но не зависит от состояния самого класса. Его следует использовать с осторожностью, когда это диктует шаблон проектирования (например, одноэлементный, фабричный метод).

Интерфейс вообще не должен иметь кода, просто делегируйте его частной логике «реализации». Вот почему в Java и C # у вас есть оператор интерфейса, который формализует концепцию чистого абстрактного класса в C ++.

Статический - это то, что логически находится в области вашего класса, но не зависит от состояния самого класса. Его следует использовать с осторожностью, когда это диктует шаблон проектирования (например, одноэлементный, фабричный метод).

Интерфейс вообще не должен иметь кода, просто делегируйте его частной логике «реализации». Вот почему в Java и C # у вас есть оператор интерфейса, который формализует концепцию чистого абстрактного класса в C ++.

Статический - это то, что логически находится в области вашего класса, но не зависит от состояния самого класса. Его следует использовать с осторожностью, когда это диктует шаблон проектирования (например, одноэлементный, фабричный метод).

одиночный, фабричный метод).

одиночный, фабричный метод).

14
ответ дан 30 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

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