دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

کاربرد as در سی شارپ

کاربرد as در سی شارپ :

روش صحیح استفاده از as در سی‌شارپ:

در سی‌شارپ، as برای تبدیل نوع (Casting) استفاده می‌شود. اگر تبدیل ممکن نباشد، null برمی‌گرداند. در زیر یک مثال صحیح از استفاده از as در سی‌شارپ آورده شده است:

کد صحیح در سی‌شارپ:

using System;

class Program

{

    static void Main()

    {

        object obj = "Hello"; // مقدار obj یک رشته است

        string str = obj as string; // تبدیل به string با استفاده از as

        if (str != null)

        {

            Console.WriteLine(str); // خروجی: Hello

        }

        else

        {

            Console.WriteLine("Memory type mismatch"); // اگر obj قابل تبدیل به string نباشد

        }

        // مثال دیگر با یک عدد

        object obj2 = 123; // مقدار obj2 یک عدد است

        string str2 = obj2 as string; // تبدیل به string با استفاده از as

        if (str2 != null)

        {

            Console.WriteLine(str2);

        }

        else

        {

            Console.WriteLine("Memory type mismatch"); // خروجی: Memory type mismatch

        }

    }

}

توضیحات کد:

تعریف متغیر obj:

object obj = "Hello";

در اینجا، obj از نوع object است و مقدار آن یک رشته ("Hello") است.

استفاده از as:

string str = obj as string;

اگر obj قابل تبدیل به string باشد، str  مقدار "Hello" را می‌گیرد.

در غیر این صورت، str   برابر null خواهد بود.

اگر str برابر null نباشد، مقدار آن چاپ می‌شود.

در غیر این صورت، پیام "Memory type mismatch" نمایش داده می‌شود.

در مثال دوم، obj2  یک عدد (123) است و نمی‌توان آن را به string تبدیل کرد.

بنابراین، str2  برابر null خواهد بود و پیام "Memory type mismatch" چاپ می‌شود.

تفاوت as با Casting معمولی:

Casting  معمولی ((type)variable):

اگر تبدیل ممکن نباشد، یک استثنا (InvalidCastException) پرتاب می‌شود.

مثال:

 object obj = 123;

string str = (string)obj; // خطا: InvalidCastException

استفاده از as:

اگر تبدیل ممکن نباشد، null برمی‌گرداند و خطایی پرتاب نمی‌شود.

مثال:

object obj = 123;

string str = obj as string; // str = null

نکات مهم:

as فقط با انواع Reference Type کار می‌کند:

as فقط برای انواع Reference Type (مانند کلاس‌ها، رشته‌ها و آرایه‌ها) کار می‌کند و برای انواع Value Type (مانند int, bool, double و غیره) استفاده نمی‌شود)

برای انواع Value Type، می‌توانید از is و سپس Casting معمولی استفاده کنید.

استفاده از is برای بررسی نوع:

قبل از استفاده از as، می‌توانید از is برای بررسی نوع استفاده کنید.

مثال:

if (obj is string)

{

    string str = (string)obj;

    Console.WriteLine(str);

}

else

{

    Console.WriteLine("Memory type mismatch");

}

جمع‌بندی:

در سی‌شارپ، از as برای تبدیل نوع (Casting) استفاده می‌شود و اگر تبدیل ممکن نباشد، null برمی‌گرداند.

 

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.