دسته بندی ها
17:45 1399/08/09

رفع خطای nullable reference types is not available in c# 7.3

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : سی شارپ WPF Sql Server Entity Framework

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3587
1 نظر
mojtabahakimian : ساخت یک Property از نوع String که Null هم قبول کنه ؟

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 05:37 1399/08/10
هوش مصنوعی

پاسخ هوش مصنوعی

برای اینکه بتوانید از ویژگی nullable reference types استفاده کنید و علامت ? را برای داشتن مقادیر null بگذارید، باید نسخه زبان C# خود را به 8.0 یا بالاتر ارتقا دهید. در C# 7.3 این ویژگی در دسترس نیست.

اگر نمی خواهید نسخه زبان را ارتقا دهید، می توانید از نوع string معمولی استفاده کنید و برای مدیریت مقادیر null از چک ها استفاده کنید. به عنوان مثال:

public string MyProperty { get; set; } = null;

در این حالت، شما نمی توانید به وضوح با علامت ? مدیریت null را انجام دهید، اما می توانید در کد خود چک کنید که آیا MyProperty null است یا نه.

در نهایت، اگر تصمیم به ارتقا نسخه زبان گرفتید، می توانید با استفاده از dotnet CLI یا از طریق تنظیمات پروژه در .csproj، نسخه مورد نظر را تنظیم کنید:

<PropertyGroup>
    <LangVersion>8.0</LangVersion>
</PropertyGroup>
به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 17:43 1399/08/10

خطای nullable reference types is not available in c# 7.3

خطای شما به خاطر ورژن سی شارپ نیست در واقع. متغیرهای از نوع string به صورت پیش فرض خاصیت Nullable رو دارند و دیگه نیازی نیست به صورت Nullable تعریف بشن. شما برای متغیرهایی باید خاصیت Nullable رو تعریف کنید که به صورت پیش فرض این قابلیت رو ندارن.

 

به مثال های زیر دقت کنید :

//اشتباه
public  string? MyProperty { get; set; }
public  Nullable<string> MyProperty { get; set; }

//صحیح
public  int? MyProperty { get; set; }
public  DateTime? MyProperty { get; set; }
public  long? MyProperty { get; set; }

 

در این رابطه می تونید این لینک رو هم مطالعه کنید.

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود