2026-05-22 csharpdotnetdotnet-11 C# 16 Reworks unsafe Into a Caller Contract C# 16 redesigns the unsafe keyword so it propagates a caller obligation instead of silently opening an unsafe context, with inner unsafe blocks now mandatory.