• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 變數的階層

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    程序階層變量 所謂程序階層變量,就是在程序內宣告的變量。以前我們在Sub 或是Function 中宣告的變量,都是程序階層的變量;也就是區域變量。 程序階層變量在程序執行時被宣告產生,而程序執行完畢后也同時被毀滅 ;也就是說其它的事件程序無法使用這個變量


    程序階層變量
        所謂程序階層變量,就是在程序內宣告的變量。以前我們在Sub 或是Function 中宣告的變量,都是程序階層的變量;也就是區域變量。程序階層變量在程序執行時被宣告產生,而程序執行完畢后也同時被毀滅;也就是說其它的事件程序無法使用這個變量,因為它已經被毀滅了。下列范例宣告了一個程序階層變量,并嘗試在另外一個程序中將其它程序階層的變量顯示出來:

    <Html>
    <Script Language="VB" Runat="Server">
    Sub Page_Init(Sender As Object, e As EventArgs)
    Dim strTest As String '宣告程序階層的變量
    strTest = "這是程序階層的變量"
    End Sub
    Sub Page_Load(Sender As Object, e As EventArgs)
    Response.Write(strTest) '這里沒有宣告strTest 變量, 就是Object 型態
    End Sub
    </Script>
    </Html>


        上述范例變量strTest 在Page_Init 事件中被宣告,并指定其內容。不過由于該變量是屬于程序階層的變量,所以在Page_Init 事件程序執行完畢后即被消滅。因為在Page_Load 事件程序中要顯示變量strTest 時,由于strTest 早已被消滅,所以這里的strTest 變量也是Page_Load 程序階層的變量,對于沒有宣告型態的變量就是Object 型態,無法顯示任何的訊息。

    網頁階層變數
        而網頁階層的變量則是網頁在加載執行時,會先讀取網頁階層宣告區中的宣告,所有在網頁階層宣告區中宣告的變量都視為網頁階層變量; 網頁階層變量在網頁執行時先被宣告產生,在網頁執行完畢后才會被毀滅。所謂網頁階層的宣告區,就是在程序外面,<Script> </Script> 之內的地方。為了程序的可讀性,我們習慣在<Script> </Script> 標注中前面區域進行網頁階層的變量宣告。下列范例宣告了一個網頁階層變量strMSG:

    <Script Language="VB" Runat="Server">
    Dim strMsg As String '網頁階層的宣告區
    Sub Page_Load(Sender As Object, e As EventArgs)
    ...
    End Sub
    </Script>


    網頁階層變量以及程序階層變量的生命周期,如下插圖所示:


        我們知道網頁開始執行時會先觸發Page_Init 事件,接著再觸發Page_Load 事件,所以我們利用這兩個事件來作一個簡單的試驗。首先我們在網頁階層的宣告區中宣告了一個變量strMsg,另外在Page_Init 事件程序中宣告了一個strTest 變量;所以strMsg 為網頁階層變量,而strTest為則為程序階層變量,如下程序所示:

    <Html>
    <ASP:Label Id="Label1" Runat="Server"/>
    <ASP:Label Id="Label2" Runat="Server"/>
    <Script Language="VB" Runat="Server">
    Dim strMsg As String '宣告網頁階層的變量
    Sub Page_Init(Sender As Object, e As EventArgs)
    Dim strTest As String '宣告程序階層的變量
    strMsg = "這是窗體階層的變量"
    strTest = "這是程序階層的變量"
    End Sub
    Sub Page_Load(Sender As Object, e As EventArgs)
    Label1.Text=strMsg
    Label2.Text=strTest '這里沒有宣告strTest 變量, 就是Object 型態
    End Sub
    </Script>
    </Html>



        上述范例的執行結果,只顯示網頁階層變量的內容。這是因為在執行Page_Load 事件程序的時候,由于strTest 是在Page_Init 事件程序中宣告的,所以Page_Init 程序在執行完畢時立即將程序階層變量strTest 毀滅,執行到Page_Load 事件程序時當然讀取不到strTest 這個程序階層變量。而strMsg 是在網頁階層宣告區中宣告的,在網頁的所有程序執行完畢后才會被毀滅,所以在Page_Load 事件程序中還是可以讀到strMsg 的內容。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>