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

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

你可能感兴趣的:(JavaScript,C++,c,C#,VBScript)