نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: نکاتی در باره توابع ، متغیرها و نحوه استفاده آنها در ( vb )

  1. #1
    معاونت سایت
    تاریخ عضویت
    2012/06/05
    محل سکونت
    Tabriz
    نوشته ها
    14,398
    سپاس ها
    6,794
    سپاس شده 16,762 در 8,741 پست
    نوشته های وبلاگ
    27

    Eh نکاتی در باره توابع ، متغیرها و نحوه استفاده آنها در ( vb )

    ارسال متغیر بصورت ByRef و ByVal

    اگر موقع تعریف یک تابع قبل از نام متغیر از عبارت ByRef استفاده نماییم هنگام فراخوانی تابع با قراردادن متغیری در تابع که دارای مقدارمیباشد ، پس از محاسبات ، مقدار متغیر نیز تغییر میکند. در ضمن مقدار تابع با آخرین مقدار متغیر محاسبه میگردد:



    Function Use_ByRef(ByRef intVar As Integer)
    intVar = intVar 1

    Return intVar

    End Function



    Dim intMyVar As Integer

    intMyVar = 1

    Response.Write(intMyVar & "-----" & Use_ByRef(intMyVar))

    پاسخ : 2-----3



    ولی اگر در مثال فوق ازByVal استفاده کنیم ، پس از محاسبات مقدار متغیر تغییر نمیکند و نیز مقدار تابع با مقدار اولیه متغیر محاسبه میشود:



    Function Use_ByVal(ByVal intVar As Integer)
    intVar = intVar 1

    Return intVar

    End Function

    Dim intMyVar As Integer

    intMyVar = 1

    Response.Write(intMyVar & "-----" & Use_ByVal(intMyVar))

    پاسخ : 1-----2





    متغیر Static


    اگر درون تابعی متغیری را بصورت Static تعریف نماییم و مقدار این متغیر طی عملیات تابع تغییر نماید در هرفراخوانی متغیر یاد شده با آخرین مقدارخود در محاسبات شرکت میکند.

    این مورد بر خلاف تعریف متغییر بوسیله دستور Dim است . چون در Dim متغییر بمحض تعریف شدن دوباره ، مقدار قبلی خود را از دست میدهد.

    Function Use_Static()

    Static intCount As Integer

    intCount = intCount 1

    Return intCount

    End Function



    Response.Write( "
    " & Use_Static)

    Response.Write( "
    " & Use_Static)

    Response.Write( "
    " & Use_Static)
    1 پاسخ :

    2
    3



    تعریف توابع بصورت OverLoads

    در نظر بگیرید كه در جایی از برنامه خود احتیاج داشته باشید كه یك فانكشن را فراخوانی و پارامترهای ورودی آنرا كه استرینك است به آن پاس نمایید. حال اگر شما مجبور باشید در مواقعی خاص به این فانكشن بجای استرینگ ، عدد یا یك متغییر از نوع دیگری پاس كنید ، چكار باید كرد؟ آیا باید دو تا فانكشن با نامهای متفاوت و نوع عملكرد متفاوت تعریف نمود ؟ آیا راه حل دیگری وجود ندارد؟

    در اینجا راه حل دیگری نیز وجود دارد كه اگر دو یا چند تابع را با یک نام ثابت ولی تعداد یا نوع متغیر متفاوت در یک کلاس تعریف نماییم میتوانیم از هر کدام برحسب نیاز استفاده کنیم:



    Function Use_OverLoads(ByVal strVar1 As String, ByVal strVar2 As String)As String

    Return strVar1 & strVar2

    End Function



    Function Use_OverLoads (ByVal intVar As Integer) As Integer

    Return intVar intVar

    End Function



    Response.Write(Use_OverLoads (5))

    Response.Write("
    " & Use_OverLoads("Over", "Loads"))



    10 پاسخ :

    OverLoads

  2. 2 کاربر از پست مفید !MAHSA! سپاس کرده اند .


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

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

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