۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه مدیریت مقادیر تهی در سی شارپ

استثناهای اشاره گر تهی جالب نیستند. می‌توانید با استفاده از این تکنیک‌ها از آن‌ها اجتناب کنید و کد خود را تمیز و قابل نگهداری نگه دارید تا به زیبایی مقادیر تهی در سی شارپ را مدیریت کنید.

استثناهای اشاره گر تهی جالب نیستند. می‌توانید با استفاده از این تکنیک‌ها از آن‌ها اجتناب کنید و کد خود را تمیز و قابل نگهداری نگه دارید تا به زیبایی مقادیر تهی در سی شارپ را مدیریت کنید.

هنگام کار بر روی برنامه های کاربردی در هر زبان برنامه نویسی، ممکن است با استثناهای تهی یا استثناهای مرجع تهی مواجه شده باشید. اشاره گر تهی یا مرجع تهی، اشاره ای به مکان یا شیء معتبر حافظه نیست. این مشکلی است که تا زمانی که برنامه نویسان برنامه می نویسند، برنامه نویسان را آزار می دهد.

مقدار تهی یک مقدار ویژه است که نشان دهنده در دسترس نبودن یک مقدار معتبر است. مقدار null مقداری است که وقتی به یک شی اختصاص داده می شود، مقدار یک فیلد یا یک متغیر در شی را به مقداری بدون مقدار، یعنی یک مقدار خالی، بازنشانی می کند. برای جلوگیری از استثناهای مرجع تهی و رفتار غیرمنتظره برنامه خود در زمان اجرا، باید مقادیر null را در کد برنامه خود مدیریت کنید.

در این مقاله، روش‌های مختلف برای مقابله با مقادیر تهی در سی شارپ را بررسی می‌کنیم. برای کار با نمونه کدهای ارائه شده در زیر، باید Visual Studio 2022 را در سیستم خود نصب کنید. اگر قبلاً نسخه‌ای ندارید، می‌توانید Visual Studio 2022 را از اینجا بارگیری کنید.

یک پروژه برنامه کاربردی کنسول در ویژوال استودیو ایجاد کنید

ابتدا، اجازه دهید یک پروژه برنامه کاربردی کنسول NET Core در ویژوال استودیو ایجاد کنیم. با فرض اینکه Visual Studio 2022 در سیستم شما نصب شده است، مراحل ذکر شده در زیر را دنبال کنید تا یک پروژه برنامه کاربردی کنسول NET Core جدید در Visual Studio ایجاد کنید.

  1. Visual Studio IDE را راه اندازی کنید.
  2. روی “ایجاد پروژه جدید” کلیک کنید.
  3. در پنجره “ایجاد پروژه جدید”، “Console App (.NET Core)” را از لیست الگوهای نمایش داده شده انتخاب کنید.
  4. بعدی را کلیک کنید.
  5. در پنجره “پیکربندی پروژه جدید خود”، نام و مکان پروژه جدید را مشخص کنید.
  6. بعدی را کلیک کنید.
  7. در پنجره “اطلاعات اضافی” نشان داده شده در ادامه، “NET 7.0 (Standard Term Support)” را به عنوان نسخه چارچوبی که می خواهید استفاده کنید انتخاب کنید.
  8. روی ایجاد کلیک کنید.
برنامه های هوش مصنوعی را با کد کم و بدون کد سریعتر بسازید

ما از این پروژه برنامه کاربردی کنسول NET 7 برای کار با مقادیر null در بخش‌های بعدی این مقاله استفاده خواهیم کرد. ما پنج روش برای مدیریت مقادیر تهی در سی شارپ را بررسی خواهیم کرد. موردی که باید استفاده کنید به نیازهای برنامه شما بستگی دارد.

عملگر تهی شرطی (?.) در سی شارپ

وقتی یک شی تهی نیست، می توانید با استفاده از عملگر تهی شرطی (?.) به اعضای آن (اعضای داده و روش ها) دسترسی پیدا کنید. اگر شی تهی باشد، عملگر شرطی تهی، null را برمی‌گرداند، اما هنگام دسترسی به اعضای شی، استثنای زمان اجرا ایجاد نمی‌کند. کلاس زیر را در نظر بگیرید.

public class Author
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; } 
    public string Address { get; set; }
}

اکنون کد زیر را برای ایجاد یک نویسنده بنویسید، مقادیری را به خصوصیات FirstName و LastName اختصاص دهید و طول ویژگی Address را بدست آورید. توجه داشته باشید که ما مقداری به ویژگی Address اختصاص نداده‌ایم، بنابراین مقدار آن null است.

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
int length = author.Address.Length;

هنگامی که قطعه کد قبلی اجرا می شود، همانطور که در شکل ۱ در زیر نشان داده شده است با یک استثنا در زمان اجرا مواجه خواهید شد.

پروتکل ها، API ها و قراردادها

nullreferenceexception 01

شکل ۱. اوه، یک استثنا مرجع تهی.

مثال کد زیر نشان می‌دهد که چگونه می‌توانید از عملگر تهی شرطی در سی شارپ برای جلوگیری از استثناء زمان اجرا استفاده کنید.

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null;
int? length = author.Address?.Length;

عملگر انتساب نول ادغام (??=) در سی شارپ

در صورتی که مقدار عملوند سمت چپ تهی باشد، عملگر تلفیقی تهی (??=) مقدار عملوند سمت راست یک عبارت را بر روی عملوند در سمت چپ موجود است. در اینجا مثالی از نحوه استفاده از این عملگر در C# آورده شده است:

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null;
author.Address ??= "Default";
Console.WriteLine(author.Address);

عملگر تهی (!.) در سی شارپ

عملگر عدم بخشش یا تهی (!.) به شما امکان می دهد تمام هشدارها را در یک عبارت سرکوب کنید. فقط در صورتی باید از این عملگر استفاده کنید که مطمئن باشید مقدار یک ویژگی یا یک شی تهی نمی شود و می خواهید هشدارهایی را در کد برنامه خود که می دانید نادرست هستند حذف کنید.

قطعه کد زیر نحوه استفاده از عملگر تهی را نشان می دهد.

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null!;
int length = author.Address.Length;
Console.WriteLine(length);

عملگر شرطی (?:) در سی شارپ

شما می توانید از عملگر شرطی (?:) برای ارزیابی عبارتی استفاده کنید که دارای مقدار تهی در یکی از دو عملوند است. عملگر شرطی به عنوان عملگر شرطی سه تایی نیز شناخته می شود، زیرا عباراتی که از این عملگر استفاده می کنند دارای سه بخش هستند: یک شرط (یک عبارت بولی)، یک عبارت نتیجه و یک عبارت جایگزین. عبارت بعدی (در سمت چپ :) در صورتی که شرط درست ارزیابی شود، ارزیابی می شود/برگردانده می شود. عبارت جایگزین (در سمت راست :) در صورتی که شرط نادرست ارزیابی شود، ارزیابی می شود/برگردانده می شود.

مقدمه ای به Micronaut: یک چارچوب جاوا بومی ابری

در اینجا یک مثال است که نشان می دهد چگونه عملگر شرطی می تواند در یک عبارت برای مدیریت مقادیر تهی استفاده شود:

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null!;
string result = (author.Address != null) ? author.Address : "Unknown";
Console.WriteLine(result); 

عملگر is در سی شارپ

همچنین می توانید از کلمه کلیدی is برای بررسی تهی بودن یک مقدار استفاده کنید. این عملگر (is یک کلمه کلیدی است و به عنوان یک عملگر نیز کار می کند) می تواند برای مقایسه مقادیر ثابت و حتی مقادیر تهی استفاده شود. قطعه کد زیر نشان می دهد که چگونه می توانید از این عملگر در سی شارپ برای مدیریت مقادیر null استفاده کنید.

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null!;
if(author.Address != null)
{
    Console.WriteLine(author.Address);
}
else
{
    Console.WriteLine("The value of the Address property is null");
}

علاوه بر پنج تکنیک نشان داده شده در این مقاله، می توانید با استفاده از عملگر == در سی شارپ، مقادیر null را بررسی کنید. هدف اصلی استفاده از عملگرهایی که در اینجا نشان داده شده اند برای مدیریت مقادیر تهی، اجتناب از نوشتن کد برای رسیدگی به استثناها است. می توانید کد خود را با استفاده از تکنیک های نشان داده شده در اینجا تمیز و قابل مدیریت نگه دارید.