📜  C# 结构 - C# (1)

📅  最后修改于: 2023-12-03 15:13:52.411000             🧑  作者: Mango

C# 结构 - C#

简介

结构(struct)是 C# 中一种轻量级的数据结构类型,它可以封装多个数据字段和方法,但在内存占用和性能方面都比类(class)更优秀。结构可以被用于一些简单的类型,比如大小等信息,以及一些复杂的类型,比如日期时间等信息。

定义结构

使用 struct 关键字来定义结构,比如:

public struct Point
{
    public int X;
    public int Y;

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
}

上面的代码定义了一个名为 Point 的结构,有两个字段 XY,以及一个构造函数,用于初始化这两个字段的值。

使用结构

使用结构时,可以像使用类一样创建结构对象:

Point p = new Point(10, 20);
Console.WriteLine("The point ({0}, {1})", p.X, p.Y);

也可以直接使用字面值来创建结构对象:

Point p = new Point { X = 10, Y = 20 };
Console.WriteLine("The point ({0}, {1})", p.X, p.Y);
结构与类的区别

结构和类的区别有以下几点:

  1. 结构是值类型,存储在栈上;类是引用类型,存储在堆上。
  2. 结构不支持继承,在结构中不能使用 protected 访问说明符。
  3. 结构中不能定义默认构造函数,因为结构的字段默认为 0
  4. 结构可以直接进行值比较,而类需要重载 EqualsGetHashCode 方法来进行值比较。
总结

结构是一种轻量级的数据结构类型,在内存占用和性能方面优秀,适用于一些简单的类型。在使用时需要注意结构和类的区别,以及适当地应用它们来提高程序的效率。