2010-04-27 2 views
17

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

ответ

38

В C#:

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

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

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

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; 
     } 
    } 
} 

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

1

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

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

  1. SQL дискуссии часто используют поле и столбец взаимозаменяемы. Поле также является стандартной терминологией для членов данных классов Java и C#.
  2. Член наиболее часто используется в C++ для обозначения функций членов, переменных члены, и так далее, для различных различных членов определения структуры/класса.
+0

Да, извините - C#. – Petr

0

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

Смежные вопросы