边学习边记录,打造自己的知识体系。
今天在微信读书看到《C#入门经典(第7版)》这本书,感觉不错,学习下变量部分。
变量
在C#中,变量关系到数据的存储。说个便于理解的例子,可以把计算机内存中的变量看成架子上的盒子。在这些盒子中,可以放入一些东西,再把它们取出来,或者只是看看盒子里是否有东西。变量也是这样,数据可放在变量中,可以从白娘中取出数据或者查看它们。
尽管计算机中的所有的数据事实上都是相同的东西(一组0和1),但变量有不同的内涵,称为类型。再用盒子类比,盒子有不同的形状和尺寸,某些东西只适合放在特定的盒子中。建立这个类型系统的原因是,不同类型的数据需要用不同的方法来处理。将变量限定为不同的类型可以避免混淆。例如,组成音频的0和1序列与组成视频文件的0和1序列,其处理方式肯定是不一样的。
要使用变量,需要声明它们,即给变量指定名称和类型。声明变量后,就可以把它们用作存储单元,存储所声明的数据类型的数据。
声明变量的C#语法是指定类型和变量名,如下所示:
<type><name>
如果使用未声明的变量,代码将无法编译,但此时编译器会告诉我们出现了什么问题,所以不用担心。另外使用未赋值的变量也会产生一个错误,编译器也会检测出这个错误。
简单类型
简单类型就是组成应用程序中基本构件的类型,例如:数值型和布尔型。与复杂类型不同,简单类型没有子类型或特性。大多数简单类型都是存储数值的。
有很多数值类型是因为在计算机内存中,把数字作为一系列的0和1来存储。对于整数值,用一定的位(单个数字,可以是0或1)来存储,用二进制格式来表示。以N位来存储的变量可以表示任何介于0到(2N次方-1)之间的数。大于这个值的数因为太大,所以无法存储在这个变量中。
一些变量名称前的“u”是unsigned的缩写,表示不能在这些类型的变量中存储负数。
另外还需要存储浮点数,它们不是整数。可以使用的浮点数类型有3种:float、double和decimal。
float 单精度浮点 32bit,
double 双精度浮点64bit,
decimal是高精度 128bit,
除数值类型外,还有3种简单类型:
**注意:**组成string的字符数量没有上限,因为它可以使用可变大小的内存。
BOOL类型
布尔类型 bool是C#中最常见的一种变量类型,主要用来表示true/false值,当编写应用程序的逻辑流程时,一个可以是true或false的变量有非常重要的分支作用。
C#中定义布尔类型时,需要使用bool关键字。例如:下面代码定义一个布尔类型的变量:
bool x =true;
重点 bool类型的默认值是false。
练一练: 使用简单类型的变量:
(1)在Program.cs中添加如下代码:
using System;
namespace L005_ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int myInteger;
string myString;
myInteger = 17;
myString = "\" myInteger\"is";
Console.WriteLine($"{myString }{ myInteger}");
Console.ReadKey();
}
}
}
(2)运行代码,结果如下图:
示例剖析
本例添加的代码完成了以下3项任务:
1、声明两个变量
2、给这两个变量赋值
3、将这两个变量的值输出到控制台
其中把整数值17赋给myInteger,很简单,但把字符串“myInter\”is(包括引号)赋给myString开始没看懂。
原来以这种方式给字符串赋予字面值时,必须用双引号把字符串括起来,因此,如果字符串本身包含双引号,就会出现错误,必须用一些表示这些字符的其他字符(即转义序列)来替代它们。本例使用序列"来转义双引号。
注意给字符串赋予字面值时,必须小心换行——C#编译器会拒绝分布在多行上的字符串字面值。要添加一个换行符,可以在字符串中使用换行符转义序列,即\n。
所有转义序列都包含一个反斜杠符号,后跟一个字符组合,因为反斜杠符号的这种用途,它本身也有一个转义序列,即两个连续的反斜杠\。
最后一行代码,用于在程序结束前等待用户输入内容,即暂停代码的执行,等待用户按下一个键。