说说 C# 语言局部变量的定义

本文探讨了C#语言中局部变量的作用域,与JavaScript和VBScript的差异。在C#中,代码块内的变量仅限该块内使用,而JavaScript和VBScript允许在函数或过程内部定义的变量在全局范围内使用。通过示例展示了C#尝试在代码块外部访问局部变量会引发编译错误,强调了不同语言对变量作用域的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        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); 一句注释掉后,程序运行结果为:

    0
    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>

    运行结果:
    0
    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
    %>

    运行结果:
    0
    9
    18
    27
    36
    45
    forOUT: 45

    注意: 以上所有示例中,for 循环中似乎每个循环都在定义变量 a,但是并不报重复定义变量的错误。 

电脑学习网  http://www.why100000.com 
张庆 2007.5.20

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值