返回
借用与共享:基本与集合引用类型
前端
2024-02-08 21:09:42
本文为“红宝书读书笔记”系列第四篇,我们将重点探讨C#中的基本引用类型和集合引用类型,深入了解值类型和引用类型之间的差异,掌握内存、变量、指针、传值、传引用等概念,并通过实例解析数组、结构体、类、对象等知识。这些知识对于理解C#语言的底层机制至关重要,有助于进一步提升我们的编程能力。
基本引用类型
基本引用类型是指直接存储在变量中的值,包括整型、字符型、布尔型等。当对基本引用类型进行赋值操作时,实际是在复制其值。这意味着,即使对副本进行修改,也不会影响原始变量的值。这也被称为“传值”。
基本引用类型的一些方法
比较运算符:
== :相等
!= :不等
> :大于
< :小于
>= :大于等于
<= :小于等于
算术运算符:
+ :加法
- :减法
* :乘法
/ :除法
% :取余
递增和递减运算符:
++ :自增
-- :自减
集合引用类型
集合引用类型是指引用存储在内存中的对象,例如数组、结构体、类和对象。当对集合引用类型进行赋值操作时,实际上是在复制指向该对象的指针。这意味着,如果对副本进行修改,将会影响原始变量的值。这也被称为“传引用”。
数组
数组是一种可以存储相同类型元素的数据结构。数组的元素可以通过索引来访问,索引从0开始。
int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
foreach (int number in numbers)
{
Console.WriteLine(number);
}
结构体
结构体是一种可以存储不同类型数据的复合数据类型。结构体的成员可以通过点运算符来访问。
struct Point
{
public int X { get; set; }
public int Y { get; set; }
}
Point point1 = new Point();
point1.X = 10;
point1.Y = 20;
Console.WriteLine(struct Point
{
public int X { get; set; }
public int Y { get; set; }
}
Point point1 = new Point();
point1.X = 10;
point1.Y = 20;
Console.WriteLine($"Point1: ({point1.X}, {point1.Y})");
quot;Point1: ({point1.X}, {point1.Y})");
类
类是一种可以存储数据和行为的引用类型。类的成员可以通过点运算符来访问。
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public void Greet()
{
Console.WriteLine(class Person
{
public string Name { get; set; }
public int Age { get; set; }
public void Greet()
{
Console.WriteLine($"Hello, my name is {Name} and I am {Age} years old.");
}
}
Person person1 = new Person();
person1.Name = "John Doe";
person1.Age = 30;
person1.Greet();
quot;Hello, my name is {Name} and I am {Age} years old.");
}
}
Person person1 = new Person();
person1.Name = "John Doe";
person1.Age = 30;
person1.Greet();
对象
对象是类的实例,可以通过实例化类来创建。对象可以存储数据和行为,并可以调用类的方法。
Person person1 = new Person();
person1.Name = "John Doe";
person1.Age = 30;
person1.Greet();
总结
本文重点介绍了C#中的基本引用类型和集合引用类型,并通过实例解析了数组、结构体、类和对象等知识。希望这些知识能够帮助您更好地理解C#语言的底层机制,并为进一步的学习打下坚实的基础。