تفاوت object، var و dynamic در سی شارپ

سوال

سلام دوستای عزیز کسی میتونه تفاوت object، var و dynamic در سی شارپ رو برام توضیح بده. تشکر و سپاس فراوان

حل شده 0
Mohsen 4 سال 5 پاسخ ها 1323 دیده شده 4

پاسخ ها ( ۵ )

  1. باسلام

    با استفاده از کلمه var در سی شارپ میتوان یک متغیر را تعریف کرد. وقتی از این کلمه برای تعریف متغیر استفاده میکنید نیاز به مشخص کردن نوع داده ای متغیر نیست و کامپایلر از روی مقداردهی اولیه، نوع متغیر را مشخص میکند

    با استفاده از کلمه dynamic در سی شارپ میتوان متغیر هایی را تعریف کرد که نوع آنها در زمان اجرا مشخص شوند (نه در زمان کامپایل). یک نوع dynamic نوع خود را در زمان اجرا بر اساس مقداری که در سمت راست علامت انتساب (=) قرار می‌گیرد، مشخص میکند. در بیشتر موارد کامپایلر نوع های dynamic را به نوع object تبدیل می‌کند.

    و object پایه یا پدربزرگ همه Data typeها در زبان برنامه نویسی سی شارپ است! Object نوع داده ارجاعی است و سرعت پایینی دارد

  2. سلام دوست درسمنی عزیز object میتواند هر نوع مقداری را ذخیره کند زیرا شی کلاس اصلی از هر نوع در چارچوپ .NET است .کامپایلر اطلاعات کمی در مورد نوع آن دارد.

    var می تواند هر نوع مقداری را ذخیره کند اما مقداردهی اولیه انواع var در زمان اعلام اجباری است این نوع از نوع ایمن است یعنی کامپایلر تمام اطلاعات مربوط به مقدار ذخیره شده را دارد ، به طوری که در زمان اجرا مشکلی ایجاد نمی کند.

    Dynamic این می تواند هر نوع متغیری را ذخیره کند،مشابه متغیر قدیمی زبان VB.این نوع امن نیست ، یعنی کامپایلر هیچ اطلاعاتی در مورد نوع متغیر ندارد.

  3. عرض سلام و ادب خدمت شما دوست درسمنی
    جالبه که بدونید Object پدربزرگ همه Data typeها در زبان برنامه نویسی سی شارپ است! Object نوع داده ارجاعی است و سرعت پایینی دارد اما Var نوع داده مقداری است و از سرعت بالاتری برخوردار است، dynamic نیز شبیه Object است با این تفاوت که سرعت بالاتری دارد. بدونید که ابتدا Object به وجود آمد بعد Var و سپس dynamic!
    از دیگر تفاوت ها می توان گفت:
    نوع Var می تواند متغیرهای گوناگونی از هر نوعی را در خود ذخیره کند فقط باید در هنگام تعریف نوع Var، متغیر، مقدار دهی اولیه شود، نوع متغیر مشخص نمی باشد و با اولین مقدار دهی به متغیر، نوع آن مشخص می شود، در حالیکه ما می توانیم لحظه ی تعریف نوع داده ی Object، آن را مقدار دهی اولیه نکنیم.

    بهترین پاسخ
  4. سلام

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

    object پایه یا پدربزرگ همه Data typeها در زبان برنامه نویسی سی شارپ است, Object نوع داده ارجاعی است و سرعت پایینی دارد.

     

  5. سلام دوستان

    علاوه بر موراد بالا که گفته شد:

    1. object از سی شارپ ورژن یک وجود داشت . نکته بعدی اینکه object در زمان اجرا برنامه نوعش مشخص میشه

    ;object x =10

    1. var از سی شارپ ورژن سه اضافه شد. و اینکه var  در زمان کامپایل شدن و به محض اینکه مقدار دهی شد نوع داده مشخص میشه.

    ;var y=20

    1. در همین لحظه تعریف نوع var به int تبدیل شد. در حالی که object در زمان اجرا مشخص میشد

ارسال یک پاسخ