При написании этого метода для пользовательской NUnit Constraint.
    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 предупреждает, что expected и actual могут быть ValueType объектами.
e.g. TExpected is DateTime expected == null;// but DateTime is a struct.
Каковы правила при сравнении значения ValueType с нулем и как я должен писать метод для учета этого, не ограничивая общие параметры, добавляя ограничение класса?