Я пытался найти, что значение этого называет, но особенно из-за языкового барьера я не смог понять то, для чего они используются. Я предполагаю, что "поле" является переменным (объект также?) в классе, в то время как "свойство" является просто объектом, который возвращает определенное значение и не может содержать методы и т.д. "Участником" я понимаю любой объект, который объявляется на уровне класса. Но это просто мои предположения на основе прокомментированных примеров кода, где некоторые осторожные программисты использовали "регион свойства" и т.д. Я был бы очень признателен за, если кто-то мог бы объяснить это мне.
В C #:
поля : это переменные, объявленные на уровне класса.
public class SomeClass
{
private int someInteger; // This is a field
public double someDouble; // This is another field
protected StringBuidler stringBuidler; // Still another field
}
properties : часто используемые в качестве средств доступа к частному полю класса, они могут предоставлять методы получения и установки, которые оборачивают некоторую логику вокруг манипуляций с полем.
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 : Включает поля, свойства, методы, события класса.
Терминология в этой области безнадежно запутана и сильно варьируется от языка к языку и от модели к модели. Вы имеете в виду конкретный язык или платформу?
В первом приближении:
Эти термины относятся к разным языкам, поэтому они частично пересекаются, и различия связаны больше с конкретными языками, чем с концепцией. Свойство и поле используются для описания данных в классах, членами могут быть данные и поведение (например, методы) в классах. Однако есть различия между свойствами и полями в C # и Java, но это синтаксический сахар. Если бы вы использовали объектно-ориентированный язык на основе прототипов (в отличие от основанного на классах), вы бы говорили о слотах объектов ... Если вы хотите понять весь смысл, сначала выберите язык.