¿Puedes detectar si un campo C # tiene asignado un valor predeterminado?

Digamos que tiene una declaración de clase, por ejemplo:


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

Ahora, ¿hay alguna manera en el código genérico, usando la reflexión (o cualquier otro medio, para el caso), que pueda deducir que myInt tiene un valor predeterminado asignado, mientras que myOtherInt no? Tenga en cuenta la diferencia entre inicializarse con un valor predeterminado explícito y dejarlo en su valor predeterminado implícito (myOtherInt se inicializará a 0, de forma predeterminada).

Según mi propia investigación, parece que no hay forma de hacer esto, pero pensé en preguntar aquí antes de rendirme.

[Editar]

Incluso con los tipos anulables y de referencia, quiero distinguir entre aquellos que se han dejado como nulos y aquellos que se han inicializado explícitamente como nulos. Esto es para que pueda decir que los campos con un inicializador son "opcionales" y otros campos son "obligatorios". En este momento tengo que hacer esto usando atributos, lo que me molesta con su redundancia de información en este caso.

Respuestas a la pregunta(12)

Su respuesta a la pregunta