C#学习笔记6_变量的作用域
变量的作用域包括代码块、函数、类、文件几种情况。
局部变量是在**函数(或代码块)**内部定义的变量,也称为内部变量,局部变量只能在定义它的函数(或代码块)内被访问和使用,其他函数均不能使用。
局部变量的作用域,限于说明它的代码块内:从说明的地方开始至所在的代码块结束, 离开该函数后再使用这种变量是非法的。
1.代码块域(局部变量)
指的是在一个结构(顺序选择循环结构)中的变量,变量的作用域是最小的。如for循环里面的变量
2.函数域(局部变量)
指的是在函数定义内部定义的变量
3.类域(全局变量)作用域和它所属的类的作用域相同
在类的里面,函数的外部定义的变量
class Program
{
static string myString;//全局变量
static voidWrite()
{
}
}
4.文件域
在namespace外部定义的变量
5.外部文件域
定义在namespace外部,而且添加extern关键词
关于全局变量,需要添加static或者const。如果全局变量需要改变,则使用static,否则用const。
函数域与块作用域举例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSharp
{
public class TestScope
{
public TestScope()
{
//sA 在TestScope()方法内部有效.,函数域
string[] sA = new string[5] { "H", "e", "l", "l", "o" };
//块作用域:s6只在foreach循环内部有效。
foreach (string s6 in sA)
{
Console.WriteLine(s6);
}
//在这里不能引用s6
//Console.WriteLine(s6);
//同样不能重新定义s6
//string s6 = "";
}
}
}
函数域变量在块作用域中使用,如变量text,需要先定义并初始化
static void main()
{
int i;
string text="";
for(i=0;i<10;i++)
{
string text="Line"+Covert.ToString(i);
Console.WriteLine("{0}",text);
}
Console.WriteLine("Last text output in loop:{0}",text);
Console.ReadKey();
}