A przepraszam, zrozumiałem to jako pytanie. Zapis "bool?" zamiast bool? jest bardziej właściwy w takich przypadkach. Rozwiałoby to wszelkie wątpliwości.
Typ ze znakiem zapytania na końcu jest skrótem od "Nullable<T>", a klasa Nullable<T> typom nie nullowanym (jest jakiś sensowny polski odpowiednik "non-nullable" i "nullable"?) dodaje możliwość przypisania im wartości null. Tak więc typ int nie może posiadać wartości null, zaś typ int?, czy jak kto woli, typ Nullable<int> pozwala typowi int posiadać wartość null.