Можете ли вы определить, имеет ли поле C # значение en по умолчанию?

Скажем, у вас есть объявление класса, например:


class MyClass
{
  int myInt=7;
  int myOtherInt;
}

Теперь, есть ли способ в общем коде, используя отражение (или любые другие средства, в этом отношении), что я могу сделать вывод, что myInt имеет назначенное значение по умолчанию, тогда как myOtherInt нет? Обратите внимание на разницу между инициализацией с явным значением по умолчанию и оставлением его неявным значением по умолчанию (myOtherInt будет инициализироваться в 0, по умолчанию).

По моим собственным исследованиям, похоже, что сделать это невозможно, но я решил спросить здесь, прежде чем сдаться.

[Редактировать]

Даже с обнуляемыми и ссылочными типами я хочу дистанцироваться между теми, которые были оставлены как нулевые, и теми, которые были явно инициализированы как нулевые. Это так, что я могу сказать, что поля с инициализатором являются «необязательными», а другие поля являются «обязательными». На данный момент я должен сделать это, используя атрибуты, что в данном случае сводит меня с ума из-за их избыточности информации.

Ответы на вопрос(12)

Ваш ответ на вопрос