理解C#系列 / 核心C# / 变量
变量
变量?
变量是对一个东西指定一个名称,变量的功能和人的名字差不多,提到名字就知道指的是什么。
变量类型?
变量类型说明了变量的类型,声明变量是一个整数,还是小数,还是字符,或是图像,或是人类,或是什么。
定义变量
【变量类型】【空格】【变量名称】【;】
赋值
【变量名称】【=】【值】【;】
变量第一次被赋值叫做变量初始化。
变量在使用前必须被赋值,就是必须指向一个目标,不能只有名字,而不知道名字代表什么。
定义变量的同时进行赋值
【变量类型】【空格】【变量名称】【=】【值】【;】
相同变量类型条件下,同时初始化多个值
【变量类型】【空格】【变量名称1】【=】【值1】【;】【变量名称2】【=】【值2】【;】
当变量是类或结构中的字段时,如果不初始化,.NET会对变量初始化默认值。
当变量在方法中声明时,如果不初始化,编译器会报错。
万能变量类型var?
var类型根据变量初始化的值,进行类型推断,初始化完成后,实际上变量类型就明确了,本质上还是强类型。
var类型的变量必须初始化,否则,编译器就没有推断变量类型的依据。
var类型初始化完成后,就不能改变变量类型了。
局部变量的作用域?
变量的作用域是可以访问该变量的代码区域,区域通常是用({})划分。
定义变量的代码位置不同,作用域也不同。
一个作用域中不能存在相同的变量名称的变量,反之,在不同作用域中可以存在相同名称的变量,他们互不干扰。
当局部变量和字段重名时
局部变量隐藏了同名的在类下面定义的变量(字段),在局部该名称的变量指向的就是局部变量。
如果想在局部指向同名的字段,可以在变量名称前加上特殊说明(this),即【this.】【变量名】,this代表这个类的实例,如果字段是全局变量,请用类名代替this。
理解C#系列 / 核心C# / 变量的更多相关文章
- 理解C#系列 / 核心C# / 判断&循环&跳转
判断&循环&跳转 说明 本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思. 判断 很容易理解:如果……就…… if语句:测试特定条件是否满足,如果满足就执 ...
- 理解C#系列 / 核心C# / 数据类型
数据类型 数据类型 C#把数据类型分为两种:值类型和引用类型. 值类型和引用类型 值类型的变量直接指向存储的值,引用类型的变量指向值的引用.[理解:引用就像一个柜子的号码牌,可以顺藤摸瓜找到柜子.假如 ...
- 理解C#系列 / 核心C# / 常量
常量 常量? 我对常量的理解就是在初始化完成后再也不变的“全局变量”. 定义常量 [const][空格][变量类型][空格][变量名称][=][值][:] const表示定义的是常量. 常量特点 常量 ...
- 理解C#系列 / 核心C# / 枚举
枚举 如果没有枚举 //1代表s号:2代表m号:3代表l号:4代表XL号:5代表XXL号 ; ){ //快递发M号的衣服 } 有了枚举之后 声明枚举(请原谅我使用了中文汉字) public enum ...
- 理解C#系列 / 核心C# / 编译参数
编译参数 编译控制台应用程序 csc 源文件.cs 编译Windows应用程序 csc /t:winexe 源文件.cs 编译类库应用程序 csc /t:libray 源文件.cs 编译引用类库的应用 ...
- 理解C#系列 / 核心C# / 名称空间
名称空间namespace 名称空间 名称空间用来逻辑分类,而不是物理上的,名称空间与程序集无关[程序集:经由编译器编译得到的文件],同一个程序集中可以有2不同的名称空间,也可以在不同的程序集中定义同 ...
- 深入理解JavaScript系列(12):变量对象(Variable Object)
介绍 JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么? 原始发布:Dmitry ...
- 深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)
本篇是ECMA-262-3 in detail系列的一个概述(本人后续会翻译整理这些文章到本系列(第11-19章).每个章节都有一个更详细的内容链接,你可以继续读一下每个章节对应的详细内容链接进行更深 ...
- 深入理解javascript系列(4):立即调用的函数表达式
本文来自汤姆大叔 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行. 在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法 ...
随机推荐
- C++ Code_StatusBar
主题 1. 创建状态栏 并显示 2. 在状态栏中显示进度条 3. MDI文档显示和隐藏状态栏 4. 5. 代码::创建状态栏 并显示 //手动添加3个ICON //////////////// ...
- dom4j生成、解析xml
/** * 创建xml * @param obj 泛型对象 * @param entityPropertys 泛型对象的List集合 * @param Encode XML自定义编码类型 * @par ...
- 如何选择Javascript模板引擎(javascript template engine)?
译者 jjfat 日期:2012-9-17 来源: GBin1.com 随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下: ...
- TP复习6
## ThinkPHP 3.1.2 查询方式#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.普通查询方式 a.字符串 $arr=$m->wher ...
- [Angular2 Router] Configuring a Home Route and Fallback Route - Learn An Essential Routing Concept
In this tutorial we are going to learn how to configure the Angular 2 router to cover some commonly ...
- jquery easyui from 表单返回乱码!
如果用easyui的form进行提交,必须在<form>标签中加入属性method="post",即<form method="post"&g ...
- MyBatis中主要类的生命周期和应用范围
转自:http://ccchhhlll1988-163-com.iteye.com/blog/1420026 MyBatis中常用的类就要数SqlSessionFactoryBuilder.SqlSe ...
- Reservoir Sampling - 蓄水池抽样
问题起源于编程珠玑Column 12中的题目10,其描述如下: How could you select one of n objects at random, where you see the o ...
- [android]fmodex在某些android设备上声音延迟Latency
// The default on windows in bufferlength = 1024 and numbuffers = 4 hr = g_pFmodSystem->setDSPBuf ...
- vsftpd虚拟用户创建实例(转载)
vsftpd虚拟用户创建实例 发布:theboy 来源:net [大 中 小] vsftpd虚拟用户创建实例,有需要的朋友可以参考下. vsftpd虚拟用户创建实例,有需要的朋友可以参考 ...