Да. В .NET есть два типа типов: ссылочные типы и типы значений.
Типы ссылок (обычно классы) всегда упоминаются ссылками, поэтому они поддерживают ноль без дополнительной работы. Это означает, что если тип переменной является ссылочным типом, переменная автоматически становится ссылкой.
Типы значений (например, int) по умолчанию не имеют понятия нуля. Тем не менее, есть обертка для них под названием Nullable. Это позволяет вам инкапсулировать ненулевой тип значения и включать нулевую информацию.
Хотя использование немного отличается.
// Both of these types mean the same thing, the ? is just C# shorthand.
private void Example(int? arg1, Nullable<int> arg2)
{
if (arg1.HasValue)
DoSomething();
arg1 = null; // Valid.
arg1 = 123; // Also valid.
DoSomethingWithInt(arg1); // NOT valid!
DoSomethingWithInt(arg1.Value); // Valid.
}