C#基础知识 - 变量、常量与数据类型篇

更多C#基础知识详解请查看:C#基础知识 - 从入门到放弃

第3节 变量、常量与数据类型

3.1 C#变量

变量可以理解为是我们程序可以操作的内存区域的名称,在 C# 中每个变量都有自己特定的类型,这个类型确定了变量所占内存的大小、布局、取值范围以及可以对该变量执行的操作。
可以将变量当作一种通过符号(变量名)表示某个内存区域的方法,变量的值可以更改,并且可以多次重复使用。C# 中的基本变量类型可以归纳为以下几种:

类型 变量名称
整型(整数类型) sbyte、byte、short、ushort、int、uint、long、ulong、char
浮点型 float、double
十进制类型 decimal
布尔型 true、false
空类型 可为空值的数据类型

3.1.1 变量使用

1、声明变量
2、初始化变量(变量赋值)
3、变量使用

3.1.2 自定义变量

使用如下:

int a;	//double b;
a = 23;	//b = 3.14;
Console.WriteLine(a);
Console.ReadKey();	//停留弹窗

3.1.2 接收用户输入

代码如下:

Console.WriteLine("输入一个整数:");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("你输入的数是:"+a); 
Console.ReadKey();	//停留弹窗

运行结果:

输入一个整数:
23
你输入的数是:23

在上述代码中,int.Parse( )函数用于将字符串转换为整数类型(int)。它接受一个表示整数的字符串参数,并返回对应的整数值。因为C#默认用户输入的数据是字符串类型(string),需要使用int.Parse( )函数进行转换。
使用int.Parse( )函数需要注意以下几点:
1、字符串必须包含有效的整数表示。
2、如果字符串无法解析为整数,则会抛出FormatException异常。
3、转换结果的范围应该在int类型的表示范围内,否则会抛出OverflowException异常。

除了int.Parse( )函数,C#还提供了其他类似的类型转换方法,比如double.Parse( )用于将字符串转换为双精度浮点数,bool.Parse( )用于将字符串转换为布尔值等。
这些方法在处理类型转换时非常有用,但要确保字符串的格式与目标类型匹配,以避免转换错误。

3.2 C#常量

常量和《变量》类似,唯一不同的是常量的值在程序的编译阶段就已经确定了,而且在程序的运行期间不允许修改。常量可以是任何基本数据类型,如整数常量、浮点常量、字符串常量等等。

常量在程序中用于存储不可变的数值、字符串,或者其他类型的数据。使用常量的好处在于可以提高代码的可读性和可维护性,并且在编译时会进行常量优化,减少运行时的开销。

3.2.1 常量的使用

1、声明常量 - const
2、初始化常量(常量赋值)
3、常量使用
【示例】计算圆的周长和面积。

 const double pi = 3.14;
 double r = 5;
 Console.WriteLine("此圆的周长是:"+2*pi*r);
 Console.WriteLine("此圆的面积是:"+pi*r*r);
 Console.ReadKey();	//停留弹窗

运行程序:

此圆的周长是:31.4
此圆的面积是:78.5

需要注意: 常量只能在声明时进行初始化,并且初始化值必须是一个编译时可确定的常量表达式。常量不能在运行时修改,并且不能重复赋值。

使用常量可以提高程序的可读性和可维护性,特别在使用固定值的时候,可以减少魔法数字的出现。魔法数字是未经解释和命名的硬编码值,使用常量可以将这些值集中起来管理,提高代码的可靠性和可维护性。

3.3 C#数据类型

C#中,数据类型可以分为值类型(value types)和引用类型(reference types)。值类型直接存储数据的值,而引用类型存储数据的地址。

3.3.1 数据类型之值类型

C#中常见的值类型:
1、数值类型:
整数类型:sbyte, byte, short, ushort, int, uint, long, ulong。
浮点类型:float, double, decimal。
2、布尔类型:
bool:表示逻辑值的类型,只能取值true或false。
3、字符类型:
char:表示单个字符的Unicode字符。
4、枚举类型:
enum:用户定义的枚举类型,用于定义一组命名的常量值。
5、结构体类型(struct):
struct:用户定义的结构类型,用于封装多个相关的值。

需要注意:
1、值类型的特点是存储在栈上,比较高效,适用于存储较小的数据和简单的数值计算。在使用值类型时,注意数据的大小和范围是否满足需求,并且可以避免不必要的副本创建,以提高性能。
2、值类型在内存中分配空间并直接存储数据的值,因此它们通常具有大小已知的固定内存布局。值类型的赋值和参数传递是按值传递的,即复制整个值。这意味着在对值类型进行操作时,操作的是它们的副本,而不是原始值本身。

3.3.2 数据类型之引用类型

C#中,引用类型(reference types)是一种存储对数据对象的引用的数据类型。引用类型的变量存储了对象在内存中的地址,而不是直接存储对象的数据。

C#中常见的引用类型:
1、类类型(class):
class:用户定义的类类型,用于封装数据和方法。
2、字符串类型:
string:用于表示一个或多个字符的字符串。
3、数组类型:
数组(array):用于存储相同类型的元素的集合。
4、接口类型(interface):
interface:定义了一组方法和属性的类型,用于实现多态性。
5、委托类型(delegate):
delegate:用于定义方法的委托类型。

需要注意:
1、引用类型的变量存储的是指向实际数据对象的引用(地址),而不是直接存储数据的值。多个引用变量可以引用同一个数据对象,因此可以在不同的地方操作和修改同一个对象。引用类型的赋值和参数传递是按引用传递的,即传递引用而不是复制整个对象。
2、引用类型的特点是存储在堆上,并且具有动态分配和释放内存的能力。引用类型适合存储复杂的数据结构和大量数据。在使用引用类型时,需要注意空引用的可能性和内存管理的问题,确保值的正确性和安全性。

相关推荐

  1. C#基础知识 - 变量、常量数据类型

    2023-12-17 05:22:03       39 阅读
  2. 二、C#基础语法( 变量数据类型

    2023-12-17 05:22:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 05:22:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 05:22:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 05:22:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 05:22:03       20 阅读

热门阅读

  1. 万界星空科技灯具制造行业MES核心功能

    2023-12-17 05:22:03       34 阅读
  2. MySQL5.x和8.0

    2023-12-17 05:22:03       29 阅读
  3. 使用正则表达式快速提取电影下载地址

    2023-12-17 05:22:03       41 阅读
  4. 课设:FPGA音频均衡器 verilog设计及仿真 加报告

    2023-12-17 05:22:03       41 阅读
  5. spring boot集成springCache同步redis

    2023-12-17 05:22:03       37 阅读
  6. 什么是http协议

    2023-12-17 05:22:03       37 阅读
  7. 华为、新华三、锐捷常用命令总结

    2023-12-17 05:22:03       36 阅读