C# 编程语言学习系列(二)

2021-12-07 12:12:39 浏览数 (2801)

学习 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# 变量的定义,初始化。用户输入值的转换,以及标识符要遵循的规则。

三大数据类型:值类型、引用类型和指针类型。

其中了解了值类型的部分常用数据类型,引用类型的三个类型的介绍。