变量所有的类跟解析

变量分类
C#语言定义了7种不同类别的变量:静态变量、实例变量、数组元素、值参数、引用参数、输出参数和局部变量。

静态变量:
静态变量是指使用static修饰符声明的变量。静态变量总是在包含了它的那个类型的静态构造函数执行之前就存在了,在关联的应用程序域终止时终止。静态变量都具有初始值,即是该变量的类型的默认值。如果静态变量的类型为引用类型,那么它的初始值为null。
每一个变量都有一个声明周期,静态变量也一样。静态变量一般在程序编译之后就存在了,它总是在包含了它的那个类型的静态构造函数执行之前就存在了,在关联的应用程序域终止时终止。

实例变量:
实例变量和静态变量相对应。实例变量是指未使用static修饰符声明的变量。实例变量包括两种类型的变量:类的实例变量和结构的实例变量。

类的实例变量:
类的实例变量声明在某一个类中,它在创建该类的新实例时开始存在,在所有对该实例的引用都已终止,并且已执行了该实例的析构函数时终止。

结构的实例变量:
结构的实例变量声明在某一个结构中,它的声明周期和它所在结构变量的声明周期一样。即当它所在结构变量开始存在或停止存在时,该结构的实例变量也随之存在或消失。

局部变量:
顾名思义,局部变量是在应用程序的某一段时间内存在。局部变量可以声明在块、for语句、switch语句和using语句中,即局部变量是通过local-variable-declaration 来声明的。
局部变量的生存期是应用程序执行过程中的某一“段”时间。在此期间,应用程序会为该局部变量保留存储控件。局部变量的生存期是从声明该变量开始,一直到它所在的块或for语句或switch语句或using语句结束。

值参数:
对于一个函数成员而言,它都存在一个参数列表。当然,该参数列表可以是空,也可以包含一个或多个参数,多个参数之间使用逗号分隔。在声明参数时,可以不使用修饰符,也可以使用ref或out修饰符。值参数是指未使用ref或out修饰符声明的参数。
值参数的声明周期和它所在的函数成员相关。当它所在的函数成员被调用时,值参数开始存在,并在该函数成员调用中使用给定的实参的值进行初始化。当该函数成员返回时,值参数停止存在。

引用参数:
引用参数是值使用ref修饰符声明的参数。引用参数和值参数最大的一个区别在于在函数成员中,函数成员为值参数分配了一个新的存储位置,而引用参数仍然使用其基础变量的存储位置。即引用参数和其基础变量操作了同一个变量,而值参数和其基础变量是操作了两个不同变量,而且不互相影响。

输出参数:
输出参数是指使用out修饰符声明的参数。输出参数和值参数最大的一个区别在于在函数成员中,函数成员为值参数分配了一个新的存储位置,输出参数不创建新的存储位置,而是使用基础变量的存储位置。因此,输出参数的值总是与基础变量相同。简而言之,基础变量实际上是分配了一个存储位置。在调用包含out参数的函数成员时,该函数成员将在这一个存储位置存储新的值,并修改基础变量的值。

数组元素:
数组元素是指作为函数成员参数的数组的元素,它总是在创建数组实例时开始存在,在没有对该数组实例的引用时停止存在。每个数组元素的初始值都是其数组元素类型的默认值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值