C#中变量(成员变量、局部变量、全局变量)的作⽤域
不管在任何编程语⾔中都有变量的定义,变量就像是⼀个容器,不同的变量会在内存中占据不同⼤⼩的内存空间。定义变量后会将分配的地址绑定在这个变量名上,以后对该变量名的操作就是对该内存地上存储内容的操作。
namespace test
{
class myTest
{
int loop = 0;          //实例成员变量
static int num  = 0;    //静态成员变量
public static int value = 10; //全局变量
void Main()writeline输出数值变量
{
int m = 0;          //局部变量
for (int i = 0; i < 100; i++)
{
//i为局部变量,其作⽤域仅为for循环体内
Console.WriteLine(i);
}
}
}
}
成员变量:在类中定义的变量,在整个类中都有效,类中定义的⽅法都可以使⽤该变量。成员变量⼜可以分为实例成员变量和静态成员变量。
静态成员变量:使⽤static修饰的成员变量,static⽤于把属性和⽅法绑定到类本⾝,⽽不是使⽤类创建的对象。使⽤静态成员变量时直接使⽤类名称进⾏调⽤,⽆论⽤户使⽤该类创建了多少个对象,静态成员变量始终只有⼀个,始终绑定到类本⾝,每个创建的对象中并不存在该静态成员变量。
实例成员变量:实例成员变量是绑定使⽤类创建的对象上的,要想使⽤实例成员变量,必须先使⽤类创建⼀个对象。使⽤实例成员变量时是使⽤对象名进⾏调⽤,使⽤同⼀类创建的多个对象中各⾃有⾃⼰的实例成员变量,互相隔离,互不⼲扰。
局部变量:在⽅法体中定义的变量,其使⽤范围只局限在定义它的⽅法之中或者⽅法之中的循环体之内,作⽤域不超过⼀个⼤括号
全局变量:在类中定义的变量⽤static修饰的变量为全局变量,在整个namespace中的所有类中都可以使⽤
需要注意的是:定义变量时不能在同⼀作⽤域内定义相同名称的变量
注意:
1)C#中定义的变量在使⽤之前必须进⾏初始化,否则编译器会报错
⼤多数的现代编译器并未将未初始化的变量标记为警告,例如在C语⾔中就可以再定义变量后不赋值就进⾏使⽤,此时变量中存储的是垃圾值,但C#编译器将使⽤未初始化的变量作为错误。
C#中有两种⽅法可确保变量在使⽤前对其进⾏初始化:
变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其值就默认是0(类和结构在后⾯讨论)
⽅法中定义的局部变量必须在代码中显式初始化,之后才能在语句中使⽤该变量。此时,初始化不是在声明该变量时进⾏的,但编译器会通过⽅法检查所有可能的路径,如果检测到局部变量在初始化之前就使⽤了它的值,就会产⽣错误

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。