返回

借用与共享:基本与集合引用类型

前端

本文为“红宝书读书笔记”系列第四篇,我们将重点探讨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#语言的底层机制,并为进一步的学习打下坚实的基础。