C# 常量、变量介绍
一、变量
一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。
1.1变量的声明
[访问修饰符] 数据类型 变量名=初始化默认值
1.2变量的初始化
变量通过在等号后跟一个常量表达式进行初始化(赋值)
为什么要进行变量初始化
变量初始化是C#强调安全性的另一种方式。
简单的说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引 用该变量。大多数现代编译器把未初始化标记为警告,但C#编译器把它当作错误来看待。这样可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值。
1.3如何确保变量初始化
- 变量直接定义在类中或者结构中,如果没有显式初始化,那么在创建变量的时候会有默认值–全局变量
- 方法、事件内的变量必须在代码中显式初始化–局部变量
之后才能在语句中使用它们的值。此时初始化不是声明该变量时进行的,但编译器会通过方法检查所有可能的路径,如果检测到局部变量在初始化之前就使用了他的值,直接报错。
常用数据类型的默认值
数据类型 默认值
(11种)数字类型 0/0.0/0.0f/0.0m
字符串类型 “”
布尔型 false
字符型 一个空格字符
对象型 null
1.4变量的作用域
变量的作用域是可以访问该变量的代码区域。一般情况下,确定作用域遵循以下规则:
- 全局变量:只要类在某个作用域内,其成员变量也在该作用域内
- 局部变量:存在于表示声明该变量的块级语句或方法结束的大括号之前的作用域内
- 局部变量:在for、while或类似语句中声明的局部变量存在于该循环语句内
变量的作用域永远局限于其直接所在的大括号之内
1.5变量的作用域冲突
在同一个区域内有至少两个相同的变量都能起到作用,这时会对程序造成冲突问题
- 局部变量,同一局部内有至少两个变量的变量名相同,那么程序编译会报错。
- 全局变量,在同一个类里面有至少两个全局变量的变量名相同,那么程序编译会报错
- 一个全局变量和多个不同局部的局部变量的变量名相同,那么变量遵循就近原则
二、常量
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量
常量可以被当作常规的变量,只是它们的值在定义后不能被修改
2.1常量的声明
常量是使用 const 关键字来定义的 。定义一个常量的语法如下:
const 数据类型 变量名=常量值;
- 常量声明之后不允许进行改变其值
- 常量命名全部使用大写字母/帕斯卡命名
2.2整数常量
- 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制
- 整数常量也可以有后缀,可以是U和L的组合,其中,U和L分别表示 unsigned 和long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合
一些整数常量的实例:
212 /* 合 法 /
215u / 合 法 /
0xFeeL / 合 法 /
078 / 非法:8 不是一个八进制数字 /
032UU / 非法:不能重复后缀 /
以下是各种类型的整数常量的实例
85 / 十进制 /
0213 / 八进制 /
0x4b / 十六进制 /
30 / int /
30u / 无符号 int /
30l / long /
30ul / 无符号 long */
2.3浮点常量
- 一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量
- 使用小数形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或 同时包含两者。有符号的指数是用 e 或 E 表示的
3.14159 /* 合 法 /
314159E-5L / 合 法 /
510E / 非法:不完全指数 /
210f / 非法:没有小数或指数 /
.e55 / 非法:缺少整数或小数 */
2.4字符常量
- 字符常量是括在单引号里,例如,‘x’,且可存储在一个简单的字符类型变量中
- 一个字符常量可以是一个普通字符(例如 ‘x’)、一个转义序列(例如 ‘\t’)或者一个通用字符UNICODE字符(例如’\u02C0’)
转义字符
在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\n)或制表符 tab(\t)。在这里,列出一些转义序列码
转义序列 含义
\ \ 字符
’ ’ 字符
" " 字符
? ? 字符
\a Alert 或 bell
\b 退格键(Backspace)
\f 换页符(Form feed)
\n 换行符(Newline)
\r 回车
\t 水平制表符 tab
\v 垂直制表符 tab
\ooo 一到三位的八进制数
\xhh . . . 一个或多个数字的十六进制数
2.5字符串常量
字符串类型赋值:双引号中写任何内容都直接输出,但是在双引号中如果遇到"“另做考虑,在计算机数据类型为字符串时,遇到”"则默认会将其与之后紧跟着的字符当做转义字符处理,如何能组成转义字符则处理该字符串时这个字符当成转义字符的功能处理,如果不能组成转义字符则编译报错
- 字符串常量是括在双引号"" 里,或者是括在 @"" 里。字符串常量包含的字符与字符常量相似,可以是:普通字符、转义序列和通用字符
- 使用字符串常量时,可以把一个很长的行拆成多个行,可以使用空格分隔各个部分
如何消除字符串中的不必要的转义序列
- 在字符串中遇到"“在之前再加一个”"
- 在字符串开头的双引号之前加"@"
取决于实际的应用场合,两者不能混合使用,原因是只要有“@”,所有的“\”失效
断点
计算机阅读程序员所书写的代码,基本上都是按照针对代码文件,从上往下逐行逐步执行。
断点的主要作用监视计算机逐步执行代码的过程,所以断点检测主要是用作用程序开发的逻辑梳理
3.1如何添加断点
- 在需要开始监测的代码行之前的灰色区域鼠标单击
- 选中需要开始监测的代码行按F9
3.2如何使用断点
首先必须确保代码能够执行到要检测的这行代码,然后启动程序,操作程序使计算机阅读到此处
这种情况下才证明计算机已经进入断点状态,计算机阅读到int i=1这个步骤
可以按按钮,或者选择按:F11(逐步骤)、F10(逐过程)执行
可以针对断点控制区域内的变量、表达式进行选中右键添加监视
如果循环中确保这次断点监视完成,希望代码正常执行,选择继续按钮
C# 常量、变量介绍相关推荐
- java基础知识点(3)——标识符常量变量
标识符-常量-变量 和小学妹一起学java 文章目录 标识符-常量-变量 一.注释, 关键字和标识符 二.关键字 1.什么是关键字 2.特点 3.关键字 三.标识符 四.java的命名规范 五.常量 ...
- Scala语法之常量变量和运算符
Scala语法之常量变量和运算符 1. 背景 官网:https://www.scala-lang.org/ scala是什么 上述截图可知,scala是一门编程语言.静态语言需要编译才能运行,强类型语 ...
- Grafana可视化工具-之变量介绍
Grafana是很好的数据可视化工具,下面这篇文章是介绍Grafana变量知识点 Grafana变量 说明:Grafana变量分四个部分 General (常用) Query Options (查询选 ...
- c语言常量类型转换,c语言基础教程常量变量和类型转换,免费版.doc
c语言基础教程常量变量和类型转换,免费版 第二章??????常量变量和类型转换2.1.1数字常量??? 数字常量包括整型常量和浮点型常量,浮点型常量又称实数.????1.整型常量???? HYPERL ...
- Object Pascal 运算符,常量,变量
2019独角兽企业重金招聘Python工程师标准>>> 不区分大小写 赋值运算符 := (Java里是=) 例如 var I:Integer; I:=30; 比较运算符 =,< ...
- php常量 变量,php语言的变量和常量
php语言的变量和常量 变量和常量是php语言的一大知识点,下面我们一起来了解关于php语言的变量和常量吧,欢迎大家阅读! php语言的变量和常量 (一)常量 变量可以随时重新赋值 //$age = ...
- 01 数据类型 、常量变量、运算符、表达式、格式化输入输出
进制转换: 1.为了区分八进制,十六进制的区别:八进制前加零,十六进制前加x0, 如058,x059: 2.进制转换,二进制,八进制,十进制,十六进制之间的相互转换.(转换为二进制后其他的就好转换) ...
- java内存区域及静态常量池、运行时常量池介绍
java内存区域介绍 我们先来介绍下虚拟机运行时数据区的结构: 我们项目中的每一个线程在运行时,都会有拥有自己独立的栈数据和程序计数器.程序计数器可以看作字节码命令的指示器,记录了下个需要执行的字节码 ...
- linux下变量名长度,Linux中shell的变量介绍
Linux中shell的变量介绍 发布时间:2020-06-24 16:20:39 来源:亿速云 阅读:112 作者:元一 这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业 ...
- c程序语言的常量变量和标识符,浅谈C语言中的常量与变量.pdf
课程教育研究 CourseEducationResearch 2014年4月 上旬刊 教学.信息 浅谈C语言中的常量与变量 刘 星 (青 岛工学院商学院 山东 青岛 266300) [摘要]在任何一种 ...
最新文章
- [Android] Android颜色对应的xml配置值
- Deep Learning Blogs
- boost::log模块实现loging到 syslog 服务器的示例
- js实现shallowReactive和reactive
- 用Apache HttpClient实现URL重定向
- 【Beta阶段】第四次Scrum Meeting
- mysql 5.74安装教程_MySQL数据库作为关系型数据库中的佼佼者,因其体积小,速度快,成本低,不仅受到了市场的极大追捧,也受到了广大程序员的青睐。接下来,就给大家说一下,MySQL的...
- HDU1106 排序(解法二)(废除!!!)
- Navicat(连接) -1之Navicat Cloud
- 武大高级软件工程2017评分汇总
- html5在线显示ofd文件,基于HTML5的OFD文件在线显示的方法以及装置制造方法及图纸...
- Python爬虫学习简单入门(第四含scrapy安装)
- [NOI Online 2021 入门组] 切蛋糕
- 【Leetcode】Customers Who Never Order
- 快速调用编辑器来写一条长,复杂或难的命令--用Enki学Linux系列(5)
- PP实施经验分享(9)——SAP中Day’s supplyReceipt day’s supply及相关报表(可当物料短缺报表使用)
- 《观察与思考》:相信中国,寻找下一个比尔·盖茨
- [Alpha] Scrum Meeting 6 - TEAM LESS ERROR
- MySQL 表中 MUL代表什么含义
- part 8: comparison between OOL and FL