说说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 %>
writeline方法的作用<%
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,但是并不报重复定义变量的错误。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论