حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش استفاده از قابلیت Null – Conditional Operators در سی شارپ

با یک نکته و معرفی یکی دیگر از ویژگی های زبان سی شارپ 6 در خدمت شما عزیزان هستم. اکثر ویژگی هایی که به نسخه 6 زبان سی شارپ اضافه شده، بیشتر به ما تو نوشتن کدهای خلاصه تر و تمیزتر کمک می کنند. این قابلیت که در این نکته معرفی میشود هم به همین صورت است. کلاس زیر را در نظر بگیرید:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای یادگیری و آموزش سی شارپ ( آموزش زبان برنامه نویسی سی شارپ ) رایگان به این لینک بروید

public class Address
{
    public string Country { get; set; }
}

public class Student
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Address Address { get; set; }        
}

حالا متدی داریم که یک پارامتر از نوع Student به عنوان ورودی گرفته و آدرس را در خروجی چاپ می کند:

public void DisplayAddress(Student student)
{
    if (student != null && student.Address != null)
    {
        Console.WriteLine(student.Address.Country);
    }
    else
    {
        Console.WriteLine("No Address!");
    }
}

با استفاده از قابلیت Null – Conditional Operators می توان متد بالا را به صورت خلاصه تر نوشت. در حقیقت این قابلیت با حذف if های متعدد، به کوتاه تر شدن و خوانایی بیشتر کد شما کمک می کند. کد بالا را به صورت زیر تغییر می دهیم:

public void DisplayAddress(Student student)
{
    Console.WriteLine(student?.Address?.Country ?? "No Address");
}

در حقیقت، با نوشتن علامت سوال بعد از هر یک خاصیت ها یا مقادیری که باید null بودن آنها چک شود، در صورت null بود مقدار، مقدار null بر گردانده می شود. در کد بالا، اگر student مقدار null داشته باشد یا Address مقدار null داشته باشد، مقدار null برگردانده شده و دیگر پیغام خطایی دریافت نمی کنیم.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات