C#中变量的作用域
Posted 产品技术知与行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中变量的作用域相关的知识,希望对你有一定的参考价值。
变量的作用域
可以在类、接口、方法、语句块、结构体中定义变量。
与Java类似,C#中没有C++中的所谓全局变量的概念。
虽然很多书上会将在类中定义的static变量或const变量说明为全局变量,但是这种类的成员变量(或者叫类的属性)和C++中的全局变量有很大的差别。C++中的全部变量是直接定义在所有的函数和类之外的,但C#和Java中不能定义这种变量。
比较有意思的一点:
对于string类型以及类类型等的变量,如果是在循环语句外声明,但没有初始化,而是在循环语句中进行初始化,则在循环语句外部,该变量仍被视为没有初始化。也就是说,在循环语句体中进行的初始化值,在退出循环语句时就被消除了。
但是,如果在循环语句之前对变量进行了初始化,那么循环体中对变量进行的任何改变都会被保留下来。(Java中也是如此)
如:
string str;for(int i = 0; i < 10; i++){
str = "Line : " + Convert.ToString(i);}Console.WriteLine(str); //会报错,说str没有初始化
这样就可以
string str = "";for(int i = 0; i < 10; i++){
str = "Line : " + Convert.ToString(i);}Console.WriteLine(str); //str == "Line : 9"
以上是关于C#中变量的作用域的主要内容,如果未能解决你的问题,请参考以下文章