Size: a a a

var chat = new Chat();

2021 September 22

Ɖ

Ɖrēw in var chat = new Chat();
Если тебе надо всю цепочку наследования пройти и достать все бакинг филды то нужно будет рекурсивно ходить и вызывать
var parentType = type.BaseType
источник

Ɖ

Ɖrēw in var chat = new Chat();
Ну или итеративно. сути не меняет
источник

ВE

Виталий EasyMod... in var chat = new Chat();
да ладно? И куда оно девается 🤔
источник

ВE

Виталий EasyMod... in var chat = new Chat();
Может просто не доступно для наследника
источник

ВE

Виталий EasyMod... in var chat = new Chat();
напрямую
источник

Ɖ

Ɖrēw in var chat = new Chat();
С точки зрения рефлексии они лежат в BaseType
источник

АЧ

Алексей Чумаков... in var chat = new Chat();
Теперь работает
источник

АЧ

Алексей Чумаков... in var chat = new Chat();
Type objectType = obj.GetType();

     FieldInfo backingField;

     do
     {
       backingField = objectType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
         .SingleOrDefault(x => x.Name.Contains($"<{propertyName}>"));

       if (backingField is not null)
       {
         break;
       }

       objectType = objectType.BaseType;

     } while (objectType is not null && objectType?.BaseType == typeof(object));


     backingField?.SetValue(obj, newValue);
источник

АЧ

Алексей Чумаков... in var chat = new Chat();
Большое спасибо!
источник

Ɖ

Ɖrēw in var chat = new Chat();
Да, я примерно тоже самое написал сейчас чтобы проверить
источник

ВE

Виталий EasyMod... in var chat = new Chat();
с точки зрения ооп всё что ты не оверрайднул или не перекрыл через new находится в BaseType но это не означает что оно не отнаследовано 🤷‍♂️ путаешь людей только
источник

Ɖ

Ɖrēw in var chat = new Chat();
Что именно путает в моем утверждении, что private поля не наследуются?
Их нельзя напрямую достать как в рантайме через конкретный Type наследника, так и в момент компиляции компилятор не даст этого сделать, значит с точки зрения наследования они не наследуются
источник

ВE

Виталий EasyMod... in var chat = new Chat();
Ты наследуешь весь тип, со всеми его потрохами, а то что там есть что-то приватное лишь ограничивает к нему доступ у nested type, но наследуется оно всё полностью, никуда оно не девается и память под него выделяется и тд и тп
источник

Ɖ

Ɖrēw in var chat = new Chat();
Ты говоришь о наследовании не как о принципе ООП, а как о реализации этого в рантайме
источник

ДС

Дима Ким Сыщик Сыщик... in var chat = new Chat();
как о принципе он говорит мне кажется
источник

ДС

Дима Ким Сыщик Сыщик... in var chat = new Chat();
представь геттер юзающий приватное поле
источник

Ɖ

Ɖrēw in var chat = new Chat();
Ну это как говорить об абстрактном типе данных и о его реализации в языке
источник

ﺋﺋ

ﺋﻪﺯﺋﺰﺟﺎﻥ ﺋﺎﻳﯘﭖ... in var chat = new Chat();
ты че нас кинул
источник

ДС

Дима Ким Сыщик Сыщик... in var chat = new Chat();
ну геттер публичный ты заюзать сможешь
источник

ДС

Дима Ким Сыщик Сыщик... in var chat = new Chat();
так почему ж не наследуется
источник