Обратите внимание, что для краткости и читабельности я заменил типы, поля и методы, с которыми проще работать.
Я определил логическое свойство, personProperty
для класса, Person
, в котором я хочу, чтобы метод получения, get{}
вызывал частный метод, personMethod(int arg)
для каждого целочисленного значения поля, которое этоопределено в Person
(в данном случае _age
, _phoneNumber
).Следует игнорировать все другие типы, такие как readingList
.
Это так, что если бы я добавил еще одно целочисленное поле к Person
(или изменил или удалил любые Person
имена полей), мне не пришлось бы обновлять определение personProperty
, которое путемвыбор дизайна зависит от всех целочисленных полей класса Person
(т. е. разработчик никогда не вводит поле int
, с которым он не хочет запускать personMethod
).
public Class Person
{
private int _age;
public int _phoneNumber;
// protected int _futureInt;
Dictionary<string, string> _readingList = new Dictionary<string, string>();
public bool personProperty
{
get
{
// ...
bool personPropertyReturnValue;
List<bool> resultList = new List<bool>();
foreach(int personFieldValue in LISTOFPERSONINTS)
{
bool result = personMethod(personFieldValue);
resultList.Add(result);
}
// Do stuff with `resultList` that'll initialize personPropertyReturnValue;
return personPropertyReturnValue;
}
}
private bool personMethod(int arg)
{
bool returnValue = true;
// Do stuff to initialize `returnValue`
return returnValue;
}
}
Мне нужно знать, что я должен заменить LISTOFPERSONINTS
, чтобы он возвращал итерируемое значение, хранящееся в _age
, _phoneNumber
(и во всех других будущих int
, например _futureInt
определено в Person
).