آموزش تبدیل نوع در عمل، در سی شارپ

Ratings
(0)

1. یک اپلیکیشن کنسول به نام Ch05Ex01 ایجاد کنید و آن را در آدرس زیر ذخیره کنید:

C:\BeginningCSharp7\Chapter05

2. کد زیر را در فایل Program.cs قرار دهید(فراموش نکنید عبارات using static System.Console و using static System.Convert را به لیست مرجع در بالای کدها برای این برنامه اضافه کنید). 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
using static System.Convert;

namespace Ch05Ex01
{
    class Program
    {
        static void Main(string[] args)
        {
            short shortResult, shortVal = 4;
            int integerVal = 67;
            long longResult;
            float floatVal = 10.5F;
            double doubleResult, doubleVal = 99.999;
            string stringResult, stringVal = "17";
            bool boolVal = true;
            WriteLine("Variable Conversion Examples\n");
            doubleResult = floatVal * shortVal;
            WriteLine($"Implicit, -> double: {floatVal} * {shortVal} -> { doubleResult }");
            shortResult = (short)floatVal;
            WriteLine($"Explicit, -> short:  {floatVal} -> {shortResult}");
            stringResult = Convert.ToString(boolVal) +
               Convert.ToString(doubleVal);
            WriteLine($"Explicit, -> string: \"{boolVal}\" + \"{doubleVal}\" -> " +
                      $"{stringResult}");
            longResult = integerVal + ToInt64(stringVal);
            WriteLine($"Mixed, -> long:   {integerVal} + {stringVal} -> {longResult}");
            ReadKey();
        }
    }
}

3. کدها را اجرا کنید. نتیجه در تصویر 5.4 نشان داده شده است.

 


توضیح کدها:

این مثال حاوی تبدیل های نوعی است که تا حالا مشاهده کرده ایم.  این مثال شامل تمام انواع تبدیلی است که تاکنون دیده‌اید - چه در انتساب های ساده، مانند مثال‌های کد کوتاه در بحث قبلی، و چه در عبارات. ما باید هردو مورد را در نظر بگیریم، زیرا پردازش هر عملگر non-unary ممکن است منجر به تبدیل نوع شود، نه فقط عملگرهای انتساب. بعنوان مثال، در زیر، یک مقدار short در یک مقدار float ضرب شده است:

shortVal * floatVal

در موقعیت هایی مانند این، که تبدیل صریحی مشخص نشده است، در صورت امکان، از تبدیل ضمنی(implicit) استفاده می شود. در این مثال، تنها تبدیل ضمنی(implicit)  که معنی دارد، تبدیل short به یک float است(چونکه تبدیل یک float به یک short نیاز به تبدیل صریح دارد)؛ بنابراین از همین استفاده خواهد شد. با این حال، در صورت تمایل می‌توانید این رفتار را لغو(override) کنید، همانطور که در اینجا نشان داده شده است:

shortVal * (short)floatVal

نکته: جالب است بدانید که، ضرب دو مقدار از نوع short در یکدیگر، یک مقدار short را برنمی گرداند. زیرا نتیجه این عملیات به احتمال زیاد از ۳۲۷۶۷ (حداکثر مقداری که یک نوع داده short می‌تواند در خود نگه دارد) بیشتر خواهد شد، در واقع یک عدد صحیح (int) برمی‌گرداند. این فرآیند تبدیل در نگاه اول می‌تواند پیچیده به نظر برسد، اما تا زمانی که عبارات را با در نظر گرفتن ترتیب تقدم عملگرها به بخش‌های کوچک‌تر تقسیم کنید، باید بتوانید به آن پی ببرید. 

 

  • بازدید: 61

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال