Подтвердить что ты не робот

Термины программирования - поле, член, свойства (С#)

Я пытался найти смысл этих терминов, но особенно из-за языкового барьера я не мог понять, для чего они используются. Я предполагаю, что "поле" является переменным (объект тоже?) В классе, а "свойство" - это просто объект, который возвращает определенное значение и не может содержать методы и т.д. Под "членом" я понимаю любой объект, объявленный на уровне класса. Но это только мои предположения, основанные на комментариях кода, где некоторые осторожные программисты использовали "область свойств" и т.д. Я был бы очень признателен, если бы кто-нибудь мог мне это объяснить.

4b9b3361

Ответ 1

В С#:

поля. Это переменные, объявленные на уровне класса.

public class SomeClass
{
    private int someInteger; // This is a field
    public double someDouble; // This is another field
    protected StringBuidler stringBuidler; // Still another field
}

свойства. Часто используемые в качестве аксессуаров для частного поля класса, они могут предоставлять методы get и set, которые обертывают некоторую логику вокруг манипуляций с полями.

public class SomeClass
{
    private StringBuilder stringBuilder;

    // Property declaration
    public StringBuilder StringBuilder
    {
        get 
        { 
            if(this.stringBuilder == null)
                this.stringBuilder = new StringBuidler();

            return this.stringBuilder;
        }
        set
        {
            if(this.stringBuilder == null)
                this.stringbuilder = value;
        }
    }
}

members. Включает поля, свойства, методы, события класса.

Ответ 2

Терминология в этой области безнадежно смешана и сильно варьируется от языка к языку и моделируется. У вас есть определенный язык или платформа?

В первом приближении:

  • Обсуждение SQL часто использует поля и столбцы взаимозаменяемо. Поле также является стандартной терминологией для членов данных классов Java и С#.
  • Член чаще всего используется в С++ для обозначения функций-членов, переменных-членов и т.д. для разных разных членов определения struct/class.

Ответ 3

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