C# 课堂笔记
数据类型
C# 语言支持多种数据类型,它们可以大致被分为两大类:值类型和引用类型。每种类型都有其特定的用途和表现形式。
值类型(Value Types)
-
整型(Integral Types):
-
sbyte
(有符号8位整数,范围-128至127) -
byte
(无符号8位整数,范围0至255) -
short
(有符号16位整数,范围-32,768至32,767) -
ushort
(无符号16位整数,范围0至65,535) -
int
(有符号32位整数,范围-2,147,483,648至2,147,483,647) -
uint
(无符号32位整数,范围0至4,294,967,295) -
long
(有符号64位整数,范围-9,223,372,036,854,775,808至9,223,372,036,854,775,807) -
ulong
(无符号64位整数,范围0至18,446,744,073,709,551,615)
-
-
浮点型(Floating Point Types):
-
float
(单精度32位浮点数) -
double
(双精度64位浮点数)
-
-
布尔型(Boolean Type):
-
bool
(表示真(true)或假(false)的布尔值)
-
-
字符型(Character Type):
-
char
(表示单个Unicode字符,16位)
-
特殊值类型
-
枚举类型(Enumeration Types):
enum
,允许定义一组命名的整数常量。 -
结构类型(Struct Types):
struct
,可以包含多种成员(如方法和属性)。 -
可空类型(Nullable Types):
Nullable<T>
,允许任何值类型表示额外的null
状态。
引用类型(Reference Types)
-
类(Class):
class
,可以包含多种成员(如方法、属性和事件)。 -
接口(Interface):
interface
,定义了一组可以由类或结构实现的规范。 -
数组(Array):
array
,表示固定大小的相同类型元素的序列。 -
字符串(String):
string
,表示Unicode字符序列,不可变。
读取输入(ReadLine) 和 输出内容(WriteLine)
Console.ReadLine()
和 Console.WriteLine()
是在控制台应用程序中进行输入和输出的常用方法。
读取
Console.ReadLine()
-
用于从控制台读取用户的输入,返回一个字符串。
输出
Console.WriteLine()
-
用于向控制台输出一行文本。
-
可以使用占位符输出变量的值,例如:
Console.WriteLine("你好, {0}!", name);
C# 数据类型转换
在C#编程中,数据类型转换是一种常见的操作,允许将变量从一种类型转换成另一种类型。C#中的数据类型转换可以分为两大类:隐式转换和显式转换。
隐式转换
隐式转换是指在不丢失信息的情况下,将一种数据类型自动转换为另一种数据类型的过程。编译器会自动进行这种转换,不需要程序员显式指定。
基本原则
-
数据类型兼容性:目标数据类型能够无风险地容纳源数据类型的值。
-
范围或精度:目标数据类型的范围或精度大于或等于源数据类型。
示例
-
将
int
转换为long
:
csharpCopy codeint myInt = 10000; long myLong = myInt; // 隐式转换
-
将
float
转换为double
:
csharpCopy codefloat myFloat = 9.8f; double myDouble = myFloat; // 隐式转换
显式转换(强制类型转换)
显式转换,也称为强制类型转换,是需要程序员显式指定的类型转换。这通常在两种类型不兼容或者转换可能导致信息丢失时使用。
基本语法
csharpCopy code (目标类型)变量名
示例
-
将
double
转换为int
:
csharpCopy codedouble d = 9.78; int i = (int)d; // 强制转换
注意事项
-
隐式转换保证了数据的安全性,不会导致信息丢失。
-
显式转换可能会导致数据丢失或溢出,因此使用时需要格外小心。
-
并非所有类型的转换都可以隐式进行。当可能丢失信息时,必须使用显式转换。
-
使用
Convert
类可以提供一种更安全、可控的转换方式,尤其是在处理不同基础类型的转换时。
int转换为string
第一种: string a =Convert.ToString(123); 第二种: string s = 123 + "";
Parse和Convert转换方法
在C#中,转换分为显式转换和隐式转换,常用的转换方法包括Parse
方法和Convert
类。
Parse
方法
-
用于将字符串转换为其他类型,如
int.Parse("123")
将字符串"123"转换为整数123。(只能接受字符串转换成其他类型) -
主要用于基本数据类型的转换。
使用场景:当你确定字符串能成功转换为目标类型时,使用Parse
方法较为合适。例如,用户输入的数据在经过验证后。
行为:如果转换失败,Parse
方法会抛出异常。因此,使用时需要谨慎处理可能的异常情况。
Convert
类
-
提供了一系列的静态方法,用于不同数据类型之间的转换,例如
Convert.ToInt32("123")
可以将字符串"123"转换为整数123。(可以接受任意类型数据转换成其他类型) -
相比
Parse
方法,Convert
类在转换失败时会返回一个默认值,而不是抛出异常。
使用场景:当输入数据的格式不确定,或者希望在转换失败时程序能平稳运行,不抛出异常时,使用Convert
类更为适宜。Convert
类提供了更广泛的数据类型转换支持,包括对空值(null
)的处理。
行为:Convert
类在无法进行转换时通常会返回类型的默认值,而不是抛出异常。这使得Convert
类在处理不确定输入时更加灵活和安全。
foreach循环
foreach循环特别适用于遍历集合或数组。它允许你对集合中的每个元素执行相同的操作。
foreach (数据类型 标识符 in 数组名称) { // 对每个元素执行操作 } foreach (var item in str){ var:可变数据类型,程序运行时数据类型由赋予的值决定 item:迭代变量,通过迭代去访问集合元素,每一次会将数组中的元素的值赋给迭代变量 in:集合/数组,指明遍历的对象 }