变量表示存储位置,变量必须有确定的数据类型。C#的类型安全的含义之一就是确保变量的存储位置容纳着合适的类型。可以将C#中的变量分为静态变量,实例变量,传值参数,引用参数,输出参数,数组参数和本地变量共七种。本地变量则是在方法体内的临时变量。

静态变量和实例变量主要是针对类或结构内的数据成员(又叫域)而言的。静态变量在它寄存的类或结构类型被装载后得到存储空间,如果没有对它进行初始化赋值,静态变量的初始值将是它的类型所持有的缺省值。实例变量在它的类实例被创建后获得存储空间,如果没有经过初始化赋值,它的初始值与静态变量的定义相同。两者更详细的说明我们放在"第六讲 域 方法 属性与索引器"专题里。

传值参数,引用参数,输出参数,数组参数主要针对方法的参数类型而言的。简单的讲传值参数是对变量的值的一种传递,方法内对变量的改变在方法体外不起作用。对于传值参数本身是引用型的变量稍有不同,方法内对该引用(句柄)变量指向的数据成员即实际内存块的改变将在方法体外仍然保留改变,但对于引用(句柄)本身的改变不起作用。引用参数是对变量的句柄的一种传递,方法内对该变量的任何改变都将在方法体外保留。输出参数是C#专门为有多个返回值的方法而量身定做的,它类似于引用变量,但可以在进入方法体之前不进行初始化,而其他的参数在进入方法体内C#都要求明确的初始化。数组参数是为传递大量的数组元素而专门设计的,它从本质上讲是一种引用型变量的传值参数。它们更详细的阐述我们也放在"第六讲 域 方法 属性与索引器"专题里。

本地变量严格的讲是在C#的块语句,for语句,switch语句,using语句内声明的变量,它的生命周期严格地被限制在这些语句块内部。

常量在编译时便确定它的值,在整个程序中也不许修改。常量声明的同时必须赋值。由于它的编译时确定值的特性,引用类型可能的值只能为string和null(除string外,引用类型的构建器必须在运行时才能确定引用类型的值)。

最新文章

  1. java.lang.NoSuchMethodException: org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
  2. Nginx运行Mono Web (ASP.NET)
  3. PropertyPlaceholderConfigurer的用法:
  4. python在线文档
  5. Object-C 基础笔记1--杂识
  6. lintcode:完美平方
  7. 亲试,Windows平台上使用Qt5.2.1编写Android
  8. mapreduce框架详解
  9. 从入门到放弃,.net构建博客系统(一):系统构建篇
  10. [HNOI 2013]比赛
  11. winform 跨线程访问问题
  12. AppBoxFuture(二): Say goodbye to sql!
  13. 【原创】大数据基础之Impala(2)实现细节
  14. .Net 配置的简陋解决方案
  15. VS2017 docker部署工具的使用
  16. mysql中使用存储过程方法中的注意事项
  17. CSS Basic Memo
  18. js基础系列之【作用域】
  19. pandas高级操作总结
  20. IOS5 ARC unsafe_unretained等说明

热门文章

  1. 使用media query 来实现响应式设计
  2. tomcat异常[0]--java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
  3. 怎么查找Linux系统调用
  4. Java基础02-变量
  5. [转]Passing data between pages in JQuery Mobile mobile.changePage
  6. Sublime Text格式化HTML JS CSS代码
  7. log4net 基础
  8. 为什么document.write()会清空原来的内容
  9. uml的十三种图形
  10. 简简单单谈WCF