← بازگشت به تالار
هنرجو حل‌شده

علامت سؤال در Nullable Reference Types زبان C# چه کاربردی دارد؟

نازنین رضایی 1405/05/19 10:50 💬 1 پاسخ ◉ 119 بازدید
در پروژه‌ای که nullable فعال است بین string و string? هشدارهای زیادی می‌بینم. آیا استفاده از ! برای حذف هشدار روش درستی است؟ چطور ورودی‌های nullable را بدون پنهان کردن خطا مدیریت کنیم؟

پاسخ‌ها

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 را دقیق نگه دارید.
▲ 17 ▼ 0