Скажем, у вас есть объявление класса, например ::1001
class MyClass
{
int myInt=7;
int myOtherInt;
}
Теперь, есть ли способ в общем коде, использующий отражение (или любые другие средства, в этом отношении), что я могу сделать вывод, что myInt имеет назначенное значение по умолчанию, тогда как myOtherInt нет?
Обратите внимание на разницу между инициализацией с явным значением по умолчанию и оставлением его неявным значением по умолчанию (myOtherInt по умолчанию будет инициализировано 0).
Судя по моим собственным исследованиям, сделать это невозможно, но я решил спросить здесь, прежде чем сдаться.
[Изменить]
Даже с обнуляемыми и ссылочными типами я хочу дистанцироваться между теми, которые были оставлены как нулевые, и теми, которые были явно инициализированы как нулевые. Это так, что я могу сказать, что поля с инициализатором являются «необязательными», а другие поля являются «обязательными». На данный момент мне приходится делать это с помощью атрибутов, что в данном случае сводит меня с ума из-за избыточности информации.