4 本我 3周前 140次点击
还有一种全局变量,其作用域可覆盖多个函数。修改代码,如下所示:
class Program
{
//声明全局变量:我的字符串
static string 我的字符串;
//定义函数:Write
static void Write()
{
string 我的字符串 = "Write()的字符串";
WriteLine($"Write()\n局部变量我的字符串是{我的字符串}");
WriteLine($"全局变量我的字符串是{Program.我的字符串}");
}
static void Main(string[] args)
{
//声明变量我的字符串
string 我的字符串 = "Main的字符串";
//给全局变量我的字符串赋值
Program.我的字符串 = "全局字符串";
//调用函数Write
Write();
WriteLine($"Main()\n局部变量我的字符串是{我的字符串}");
WriteLine($"全局变量我的字符串是{Program.我的字符串}");
ReadKey();
}
}
注意,这里也需要static关键字。在此类控制台应用程序中,必须使用static或const关键字来定义这种形式的全局变量。如果要修改全局变量的值,就需要使用static,因为const禁止修改变量的值。
为区分这个变量和Main()与Write()中的同名局部变量,必须用一个完整限定的名称为变量名分类,这里把全局变量称为Program.我的字符串。注意,只有在全局变量和局部变量同名时,才需要这么做。如果没有局部我的字符串变量,就可以使用我的字符串表示全局变量,而不需要使用Program.我的字符串。如果局部变量和全局变量同名,会屏蔽全局变量。