جشنواره رسانه ای امام رضا ع
نمایش نتایج: از 1 به 5 از 5

موضوع: فرق Static void با void

  1. Top | #1

    عنوان کاربر
    تاریخ عضویت
    May 2017
    شماره عضویت
    8207
    نوشته ها
    83
    تشکر
    16
    تشکر شده 17 بار در 17 ارسال

    Soal فرق Static void با void

    سلام.
    میخواستم بدونم فرق static void با void چیست و چقدر در بهینه سازی کد و فریم تاثیر دارد؟

  2. Top | #2

    عنوان کاربر
    تاریخ عضویت
    May 2017
    شماره عضویت
    8207
    نوشته ها
    83
    تشکر
    16
    تشکر شده 17 بار در 17 ارسال
    حداقل لینک بدید یا سورس بزارید

  3. Top | #3

    عنوان کاربر
    تاریخ عضویت
    Apr 2012
    شماره عضویت
    741
    نوشته ها
    197
    تشکر
    287
    تشکر شده 201 بار در 106 ارسال
    نقل قول نوشته اصلی توسط E.K.S نمایش پست ها
    سلام.
    میخواستم بدونم فرق static void با void چیست و چقدر در بهینه سازی کد و فریم تاثیر دارد؟
    void یعنی تابعی که برگشتی نداره

    اگه بخواهید یه متغیر تعریف کنید و بتونید با اسکریپت های دیگه هم روش کنترل داشته باشید و برای هر شی یه مقدار خاص داشته باشه باید از Public استفاده کنید:
    فرض کنید سه مکعب داریم که به هر کدام یک اسکریپت اعمال شده باشد. در هر اسکریپت شما یک متغیر تعریف می کنید به عنوان شماره ی مکعب. نوع این متغیر رو از نوع int و به صورت Public قرار می دهید. و در اسکریپت دیگه میگیم روی هر مکعب که کلیک شد بره و اون عدد اون مکعب رو نشون بده. (یک مثال ساده زدم تا متوجه بشید). شما می تونید هر مکعب رو انتخاب کنید و در بخش Inspector عدد مربوط به خودش رو تغییر بدید و با اجرای بازی خواهید دید که با کلیک کردن روی هر مکعب اون عدد نشون داده میشه.


    حالا اگه بخواهید یه متغیر ثابت باشه باید از static استفاده کنید. این نوع متغیر هم مثل Public هست با این تفاوت که یک مقدار ثابت هست:
    به عنوان نمونه: یک بازی پازل در نظر بگیرید می خواهیم تفاوت public و static را در آن بررسی کنیم.
    برای این که بفهمیم یک بازی پازل به نتیجه رسیده است و انجام شده است باید یکی یکی تمام خانه ها را تکمیل کنیم. بهترین روش این هست که بیاییم و یک اسکریپت به هر خانه ی پازل اعمال کنیم و در این اسکریپت یک متغیر از نوع int و به صورت static تعریف می کنیم. خوب هر قطعه ی بازی یک متغیر داره از نوع int و به صورت static. حالا با یه اسکریپت دیگه میگیم هر خانه که سرجاش قرار گرفت این متغیر یکی اضافه بشه. اگه مثلا خانه ی شماره سرجاش قرار گرفت این متغیر از صفر به 1 تغییر می کنه. اگه خانه شماره 5 مثلا سرجاش قرار گرفت این متغیر از 1 به 2 تغییر می کنه و تا زمانی که تمامی خانه ها سرجایشان قرار می گیرند و بازی تمام می شود. خوب چون متغیر از نوع Static بود این متغیر مدام جمع می شد. اما حالا فرض کنید این متغیر از نوع Public باشه. با این کار هر خانه یک متغیر جداگانه داره. یعنی اگه برفرض با یه اسکریپت دیگه بگیم که اگه خانه ای سرجاش قرار گرفت متغیرش یکی بهش اضافه بشه، فقط متغیر همون خونه یکی بهش اضافه میشه. مثلا اگه خانه ی 1 سرجاش قرار گرفت متغیرش از 0 به 1 تغییر می کنه. یا مثلا اگه خانه ی 5 سرجاش قرار گرفت متغیر خانه ی 5 از صفر به 1 تغییر می کنه. به عبارت دیگه هیچ وقت نمیشه فهمید که بازی انجام شده یا نه (البته میشه کار سخت میشه)
    پس تفاوت متغیر Static و Public در این هست که در متغیر Static متغیر در کل بازی یکی هست و ربطی هم به سایر اشیا ندارد. اما در نوع Public متغیر برای هر شی متفاوت هست.


    متغیر Private هم که معلومه از اسمش. یعنی خصوصی. برای زمانی به کار میاد که شما نخواهید اولا متغیر در Inspector دیده بشه و ثانیا با استفاده از اسکریپت های دیگه دسترسی به این متغیر نباشه.

    گزینه های override ویا virtual و protected برای بحث ارث بری در سی شارپ می باشد. به نظرم به جای این که مستقیم دنبال این سه واژه در گوگل بگردید برید سراغ بحث ارث بری. اگه بخوام توضیح بدم گیج میشید. بهتره از سایت های تخصصی فارسی بپرسید. فقط در همین حد بگم که ارث بری کارها رو خیلی راحت تر می کنه. خیلی از خصوصیات و متغیرهای یک کلاس رو می توان به ارث برد.

    با تشکر
    سید
    http://unity3d.ir/%D9%BE%D8%B1%D8%B3...8-private.html
    ویرایش توسط Ahmad_2 : 08-10-2017 در ساعت 09:55 PM
    امضای ایشان

  4. کاربر زیر به خاطر ارسال مفید Ahmad_2 از ایشان تشکر کرده است:

    E.K.S (08-11-2017)

  5. Top | #4

    عنوان کاربر
    تاریخ عضویت
    May 2017
    شماره عضویت
    8207
    نوشته ها
    83
    تشکر
    16
    تشکر شده 17 بار در 17 ارسال
    نقل قول نوشته اصلی توسط Ahmad_2 نمایش پست ها
    void یعنی تابعی که برگشتی نداره

    اگه بخواهید یه متغیر تعریف کنید و بتونید با اسکریپت های دیگه هم روش کنترل داشته باشید و برای هر شی یه مقدار خاص داشته باشه باید از Public استفاده کنید:
    فرض کنید سه مکعب داریم که به هر کدام یک اسکریپت اعمال شده باشد. در هر اسکریپت شما یک متغیر تعریف می کنید به عنوان شماره ی مکعب. نوع این متغیر رو از نوع int و به صورت Public قرار می دهید. و در اسکریپت دیگه میگیم روی هر مکعب که کلیک شد بره و اون عدد اون مکعب رو نشون بده. (یک مثال ساده زدم تا متوجه بشید). شما می تونید هر مکعب رو انتخاب کنید و در بخش Inspector عدد مربوط به خودش رو تغییر بدید و با اجرای بازی خواهید دید که با کلیک کردن روی هر مکعب اون عدد نشون داده میشه.


    حالا اگه بخواهید یه متغیر ثابت باشه باید از static استفاده کنید. این نوع متغیر هم مثل Public هست با این تفاوت که یک مقدار ثابت هست:
    به عنوان نمونه: یک بازی پازل در نظر بگیرید می خواهیم تفاوت public و static را در آن بررسی کنیم.
    برای این که بفهمیم یک بازی پازل به نتیجه رسیده است و انجام شده است باید یکی یکی تمام خانه ها را تکمیل کنیم. بهترین روش این هست که بیاییم و یک اسکریپت به هر خانه ی پازل اعمال کنیم و در این اسکریپت یک متغیر از نوع int و به صورت static تعریف می کنیم. خوب هر قطعه ی بازی یک متغیر داره از نوع int و به صورت static. حالا با یه اسکریپت دیگه میگیم هر خانه که سرجاش قرار گرفت این متغیر یکی اضافه بشه. اگه مثلا خانه ی شماره سرجاش قرار گرفت این متغیر از صفر به 1 تغییر می کنه. اگه خانه شماره 5 مثلا سرجاش قرار گرفت این متغیر از 1 به 2 تغییر می کنه و تا زمانی که تمامی خانه ها سرجایشان قرار می گیرند و بازی تمام می شود. خوب چون متغیر از نوع Static بود این متغیر مدام جمع می شد. اما حالا فرض کنید این متغیر از نوع Public باشه. با این کار هر خانه یک متغیر جداگانه داره. یعنی اگه برفرض با یه اسکریپت دیگه بگیم که اگه خانه ای سرجاش قرار گرفت متغیرش یکی بهش اضافه بشه، فقط متغیر همون خونه یکی بهش اضافه میشه. مثلا اگه خانه ی 1 سرجاش قرار گرفت متغیرش از 0 به 1 تغییر می کنه. یا مثلا اگه خانه ی 5 سرجاش قرار گرفت متغیر خانه ی 5 از صفر به 1 تغییر می کنه. به عبارت دیگه هیچ وقت نمیشه فهمید که بازی انجام شده یا نه (البته میشه کار سخت میشه)
    پس تفاوت متغیر Static و Public در این هست که در متغیر Static متغیر در کل بازی یکی هست و ربطی هم به سایر اشیا ندارد. اما در نوع Public متغیر برای هر شی متفاوت هست.


    متغیر Private هم که معلومه از اسمش. یعنی خصوصی. برای زمانی به کار میاد که شما نخواهید اولا متغیر در Inspector دیده بشه و ثانیا با استفاده از اسکریپت های دیگه دسترسی به این متغیر نباشه.

    گزینه های override ویا virtual و protected برای بحث ارث بری در سی شارپ می باشد. به نظرم به جای این که مستقیم دنبال این سه واژه در گوگل بگردید برید سراغ بحث ارث بری. اگه بخوام توضیح بدم گیج میشید. بهتره از سایت های تخصصی فارسی بپرسید. فقط در همین حد بگم که ارث بری کارها رو خیلی راحت تر می کنه. خیلی از خصوصیات و متغیرهای یک کلاس رو می توان به ارث برد.

    با تشکر
    سید
    http://unity3d.ir/%D9%BE%D8%B1%D8%B3...8-private.html

    سلام
    ممنون از پاسخ شما


    اما سوالی که هنوز در ذهنم هست اینکه آیا در بهینه سازی و افزایش نرخ فریم تاثیر گذار است یا خیر؟

  6. Top | #5

    عنوان کاربر
    تاریخ عضویت
    Apr 2012
    شماره عضویت
    741
    نوشته ها
    197
    تشکر
    287
    تشکر شده 201 بار در 106 ارسال
    نقل قول نوشته اصلی توسط E.K.S نمایش پست ها
    سلام
    ممنون از پاسخ شما


    اما سوالی که هنوز در ذهنم هست اینکه آیا در بهینه سازی و افزایش نرخ فریم تاثیر گذار است یا خیر؟
    به صورت مستقیم نه بیشتر مدیریت حافظه هست چندان روی نرخ فریم تاثیر نیمزاره توابعی مثل updata مستقیم تاثیر دارن
    امضای ایشان

  7. کاربر زیر به خاطر ارسال مفید Ahmad_2 از ایشان تشکر کرده است:

    E.K.S (09-21-2017)

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگانی که با جست و جو این صفحه را مشاهده کرده اند:

Nobody landed on this page from a search engine, yet!

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •