As Anton said, you do not need to use Nullable<T> , but it can be an out parameter:
private void Test(out List<ExampleClass> foo)
Perhaps you are misleading the nullable List<T> value with List<T?> , Which would be valid for value types ... for example, you could use:
private void Test(out List<Guid?> foo)
which will be the output parameter, which is a list of valid values.
On the other hand, it usually does not have out parameters in void methods - you usually should use it instead of the return type.
source share