学习 C# 的第二天,今天将学习一下 C# 的变量以及它的基础数据类型的内容。
首先回答一下上一篇文章所提到的两个疑惑:
(1)一个程序中既然可以有多个命名空间和类,那么如何将它们联系在一起?
(2)一个程序中命名多个命名空间和类,这样的操作值得推荐吗?
一个程序中有多个命名空间和类,也是一样可以使用 using
关键字来引用命名空间。using
关键字的使用要么是放在所有元素的前面,要么放在命名空间内定义的所有元素之前。其他的命名空间的类方法使用,可以通过类.方法名来调用。
至于第二个是否放在一起,这应该是看个人习惯。笔者个人喜欢是拆分开来,一是让程序看上去干净明了,不会显得混杂;第二整理起来,也比较轻松一些。
一、变量
变量的定义
<data_type> <value_name>;
<data_type> <value_list>;
在 C# 中,每个变量都会有一个特定的类型。因此,在声明变量之前,就得先定义这个变量属于什么数据类型的。
变量可以一个一个定义,同时也是可以连续定义。如 value_list 就是由逗号隔开的标识符组成的。
int x, y, z;
char c, n;
float e, f;
连续定义的前提是,这些变量都是同属于一个数据类型的。
初始化赋值
C# 中在定义完数据类型之后,就可以给变量赋值相应类型的值。
例如:
int x, y, z;
x = 1;
y = 2;
z = 3;
char c, n;
c = 'c';
n = 'n';
除了定义后在赋值的操作,可以直接在定义变量的类型时候,同时赋予它变量值:
int x=1, y=2, z;
char c='c', n='n';
用户输入值
用户可以通过 Console.ReadLine()
方法来输入值。不过,这些值默认都是属于字符串类型的,因此如果想要将输入转换的值转换为其他的类型。例如输入整数,则可以使用 Convert.ToInt32(string);
将对应的字符串转换为整数类型:
int m = Convert.ToInt32(Console.ReadLine());
标识符
标识符是用来识别类、变量、函数或者任何其他用户定义的项目。标识符必须遵守以下的基本规则:
- 标识符必须以字母、下划线或者@开头,后面可以是数字、字母、下划线、@符号。
- 标识符第一个数字一定不能是个数字。
- 标识符不能包含任何嵌入的空格或者符号。
- 标识符不能是 C# 的关键字。除非关键字前面有一个@前缀。例如:@if是有效的标识符,但if不是。
- 标识符必须区分大小写,大写和小写字母会被认为是不同的字母。
- 标识符不能和 C# 类库名相同。
二、数据类型
C# 中,变量可以被分为:值类型、引用类型和指针类型三种数据类型。
值类型
罗列一些常用的值类型:
- bool(默认值:false)
- int(默认值:0)
- double(默认值:0.0D)
- float(默认值:0.0F)
- decimal(默认值:0.0M)
- char(默认值:’\0’)
引用类型
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
引用类型指向的是一个内存位置。
内置的引用类型:
对象类型(Object)
对象类型是 C# 通用类型系统中所有数据类型的最终积累。
当一个值类型转换为引用类型,该行为被称为装箱;当一个引用类型转换为值类型,该行为被称为拆箱。
object obj; // 申明对象类型
obj = 100; // 这是装箱
动态类型(Dynamic)
可以存储任何类型的值在动态数据类型变量中,这些变量的类型检查是检查时发生的。
dynamic = 100;
与对象类型相似,但是对象类型是在编译时发生的,而动态类型是在检查时发生的。
字符串类型(String)
char 是字符类型,只能赋给它一个值。
字符串则是可以赋给它一串字符。
char c ='n';
string s = "I am the king!"
除此之外,char 使用单引号包裹着字符,string 是使用双引号包裹着字符串。
字符串除了可以用双引号来进行分配,同时也可以使用@双引号来进行分配。
例如:
string s = @"The first word
good nice \n
biuuuuuuuuu!";
字符串前面加上 @,被称为逐字字符串。在这其中,转移符号 \ 将会失效。同时也是按照在程序中的格式来输出文本。
指针类型(Pointer Types)
指针类型变量存储另一种类型的内存地址。
声明语法:
type* identifier;
char* cptr;
int* iptr;
三、总结
C# 变量的定义,初始化。用户输入值的转换,以及标识符要遵循的规则。
三大数据类型:值类型、引用类型和指针类型。
其中了解了值类型的部分常用数据类型,引用类型的三个类型的介绍。