حذف متد CheckArgumentIsNull
shahrivar137 opened this issue · 1 comments
shahrivar137 commented
سلام
ممنون بابت مثال کاربردی که ارائه کردید.
دلیل حذف این متد در ورژن جدید چیه؟ چون الان در همه متدهای سازنده باید بررسی نال بودن انجام بشه...
public static void CheckArgumentIsNull(this object o, string name)
{
if (o == null)
throw new ArgumentNullException(name);
}
اگر متد زیر رو داشته باشیم کمکی میکنه؟
public static T CheckArgument<T>(this T obj)
{
return obj ?? throw new ArgumentNullException(typeof(T).Name);
}
public LoginController(IApplicationSignInManager signInManager)
{
_signInManager = signInManager.CheckArgument();
}
VahidN commented
اين نوع متدها با امكانات nullable reference types سازگاري ندارند و توسط كامپايلر قابليت شناسايي بررسي نال بودن را ندارند چون به همراه يك سري annotation مخصوص نيستند. اگر ميخواهيد با متدها كار كنيد، روش استاندارد كار آن در دات نت 6 با استفاده از ArgumentNullException.ThrowIfNull هست.