天天看點

說說 C# 語言局部變量的定義

        C# 語言作為一種強類型的語言,其變量的作用範圍得到了嚴格的限定。在别的語言中,比如 javascript、vbscript 中,變量的作用域隻限定到函數和過程内部,但是在 C# 中所有代碼塊内部定義的變量都隻能在本局部範圍内使用。比如:

    for(){……}

    while(){……}

    if(){……}else{……}

等。C# 的“代碼塊”要比别的語言仔細的多。

    比如以下 C# 代碼:

    using System;

    using System.Collections.Generic;

    using System.Text;

    namespace Var

    {

        class Program

        {

            static void Main(string[] args)

            {

                for (int i = 0; i < 6; i++ )

                {

                    int a = 9;

                    a *= i;

                    Console.WriteLine(a);

                }

                Console.WriteLine(a);

                Console.ReadLine();

            }

        }

    }

    由于 Console.WriteLine(a); 一句使用的變量 a 是在 for 代碼塊内部定義的,是以在編譯的時候會報告以下錯誤:

    Error:The name 'a' does not exist in the current context

    将 Console.WriteLine(a); 一句注釋掉後,程式運作結果為:

    9

    18

    27

    36

    45

    但是在 javascript 腳本中:

    <Script language="javascript">

        for (var i = 0; i < 6; i++ )

        {

          var a = 9;

          a *= i;

          document.write (a + "<br>");

        }

        document.write ("forOUT: " + a);

    </Script>

    運作結果:

    9

    18

    27

    36

    45

    forOUT: 45

    因為變量 a 在 for 循環裡已經定義并指派了,是以在後續的語句中就可以使用它。

    在 ASP 中的 vbscript 中也一樣:

    <% Option explicit %>

    <%

      dim i

      for i = 0 to 5

        dim a

        a = 9

        a = a*i

        response.write a & "<br>"

      next

      response.write "forOUT: " & a

    %>

    運作結果:

    9

    18

    27

    36

    45

    forOUT: 45

    注意: 以上所有示例中,for 循環中似乎每個循環都在定義變量 a,但是并不報重複定義變量的錯誤。 

電腦學習網  http://www.why100000.com 

張慶 2007.5.20

上一篇: c# 基礎學習
下一篇: C#基礎語言

繼續閱讀