نمایش نتایج 1 تا 2 از 2

نام تاپیک: تفاوت استفاده از Global و Dim و Public در ابتدای تعریف متغیر

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    397

    تفاوت استفاده از Global و Dim و Public در ابتدای تعریف متغیر

    با سلام به همه دوستان
    تفاوت استفاده از Global و Dim و Public در ابتدای تعریف متغیر چیه و چه فرقی این سه مورد با همدیگه داره ؟؟؟

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,057

    نقل قول: تفاوت استفاده از Global و Dim و Public در ابتدای تعریف متغیر

    بطور مختصر:
    • برد متغیرها در همون محدوده ای هست که تعریف میشن.
    • عبارت DIM فقط برای تعریف متغیر هست (نه مقادیر ثابت یا روتین)
    • عبارت های PUBLIC و PRIVATE برای تعریف هر چیزی (متغیر، ثابت، روتین، ...)
    • عبارت GLOBAL فقط و فقط در سطح ماجول VBA (نه ماجول فرم یا گزارش) - در واقع نیازی به استفاده ازش ندارید! همون PUBLIC کافی هست
    • هر چیزی که در سطح ماجول VBA تعریف بشه بصورت خودکار در سطح تمام برنامه PUBLIC هست مگر اینکه با PRIVATE تعریف بشه که در اینصورت بردش در محدوده همون ماجول خواهد بود.



    متغیرهای local داخل یک روتین تعریف میشن و فقط همونجا معنی دارن. فقط میشه با DIM اونها رو تعریف کرد.
    پس متغیر A در دو روتین زیر از هم مستقلن:

    SUB SUB1(....)
    DIM A AS LONG ' PRIVATE A AS LONG (INVALID) / PUBLIC A AS LONG (INVALID)
    ....
    END SUB


    FUNCTION F2(...) AS ...
    DIM A AS STRING
    ....
    END FUNCTION


    متغیرهایی که داخل ماجول فرم یا ماجول گزارش تعریف میشن بردشون در محدوده همون فرم یا گزارش هست و بصورت خودکار در همون محدوده PUBLIC رفتار میکنن و مهم نیست که با DIM یا PRIVATE یا PUBLIC تغریف بشن.
    البته بعضی چیزها رو نمیشه با PUBLIC تعریف کرد.
    OPTION COMPARE DATABASE
    OPTION EXPLICIT
    DIM A AS LONG ' = PUBLIC A AS LONG = PRIVATE A AS LONG
    DIM B AS STRING
    CONST G AS STRING ="AAA" ' = PRIVATE CONST G AS STRING="AAA" / PUBLIC CONST G AS STRING="AAA" (INVALID)
    PRIVATE K(3) AS DOUBLE ' = DIM K(3) AS DOUBLE / PUBLIC K(3) AS DOUBLE (INVALID)

    SUB FORM_OPEN(...)
    A=5
    B="XXX"
    K(1)=3.14
    ....
    END SUB

    SUB BTN_CLICK(...)
    MSGBOX(A)
    MSGBOX(B)
    END SUB

تاپیک های مشابه

  1. پاسخ: 6
    آخرین پست: دوشنبه 25 آبان 1388, 08:31 صبح
  2. تفاوت استفاده از membership با پیاده سازی دستی
    نوشته شده توسط lord_viper در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: یک شنبه 25 مرداد 1388, 12:07 عصر
  3. تفاوت استفاده از Typed dataset و DAL در چیست
    نوشته شده توسط miladr در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 12 آبان 1386, 21:17 عصر
  4. پاسخ: 1
    آخرین پست: دوشنبه 24 اردیبهشت 1386, 07:14 صبح
  5. تفاوت استفاده از Ado table و ADOStoredProc ...
    نوشته شده توسط alireza_63 در بخش SQL Server
    پاسخ: 5
    آخرین پست: شنبه 30 آبان 1383, 01:00 صبح

قوانین ایجاد تاپیک در تالار

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