C# కలిగి ఉండే రకాలను వాటిలో ఉండని రకాలకు భిన్నంగా వేరుచేస్తుంది. () value రకాలకు null ఆనుకోవడానికి అనుమతిస్తుంది, (compiler feature) null బగ్లను పట్టుకోవడంలో సహాయపడతాయి, మరియు (, , ) సంభవనీయ-null విలువలతో పని చేయడం శుభ్రమైన మరియు సురక్షితమైన విధానం — విస్తృతమైన null-reference సమస్యను పరిష్కరిస్తుంది.\n\n## Nullable value types (int?)\n\n```csharp int x = 5; // a value type — CANNOT be null int? y = null; // int? = Nullable<int> — CAN be null
