هنرجو
حلشده
علامت سؤال در Nullable Reference Types زبان C# چه کاربردی دارد؟
نازنین رضایی
1405/05/19 10:50
💬 1 پاسخ
◉ 119 بازدید
پاسخها
1 پاسخ ثبتشده
مهندس سارا احمدی
مدرس
✓ پاسخ پذیرفتهشده
با فعال بودن Nullable Reference Types، string یعنی مقدار نباید null باشد و string? یعنی null بخشی از قرارداد آن مقدار است. عملگر ! فقط تحلیل Compiler را خاموش میکند و هیچ بررسی Runtime انجام نمیدهد؛ پس استفاده بیدلیل از آن میتواند NullReferenceException را پنهان کند.
برای ورودی nullable ابتدا Guard Clause داشته باشید:
if (string.IsNullOrWhiteSpace(request.Title))
throw new ValidationException("Title is required");
پس از این بررسی، Compiler نیز مقدار را غیر-null میشناسد. برای Propertyهایی که Framework بعداً مقداردهی میکند از الگوهای سازنده، required یا در موارد محدود = null! استفاده کنید؛ اما قرارداد واقعی nullability را دقیق نگه دارید.