¿Qué debo hacer sobre "Posible comparación del tipo de valor con 'nulo'"?

Mientras escribe este método para una restricción NUnit personalizada.

    private void AddMatchFailure<TExpected, TActual>(string failureName, TExpected expected, TActual actual)
    {
        _matchFailures.Add(
            String.Format(MatchFailureFormat, failureName,
            (expected == null) ? "null" : expected.ToString(),
            (actual == null) ? "null" : actual.ToString()));
    }

Resharper advierte queexpected yactual puede serValueType objetos

e.g. TExpected is DateTime
   expected == null;//  but DateTime is a struct.

¿Cuáles son las reglas al comparar un ValueType con un valor nulo y cómo debo escribir el método para tenerlo en cuenta sin limitar los parámetros genéricos agregando una restricción de clase?

Respuestas a la pregunta(4)

Su respuesta a la pregunta