Итак, у меня есть этот класс:
public class Foo<T> where T : ???
{
    private T item;
    public bool IsNull()
    {
        return item == null;
    }
}
Теперь я ищу ограничение типа, которое позволяет мне использовать все как параметр типа, который может быть null. Это означает, что все ссылочные типы, а также все типы Nullable (T?):
Foo<String> ... = ...
Foo<int?> ... = ...
должно быть возможно.
Использование class, поскольку ограничение типа позволяет мне использовать ссылочные типы.
Дополнительная информация:
Я пишу приложение для труб и фильтров и хочу использовать ссылку null как последний элемент, который переходит в конвейер, чтобы каждый фильтр мог нормально закрываться, выполнять очистку и т.д.