C# 结构体(Struct)学习笔记

什么是结构体?

在 C# 中,结构体是一种简单的数据类型,它可以包含多种类型的数据成员,如字段、属性、方法等。与类不同,结构体是值类型,这意味着它们被存储在堆栈上,而不是在堆上分配内存。此外,结构体也是 sealed 的,不能被继承。

如何定义和使用结构体?

定义结构体的语法如下:

Copy Code
struct StructName { // 字段和方法定义 }

以下是一个结构体的示例代码:

Copy Code
public struct Point { public int X; public int Y; public Point(int x, int y) { X = x; Y = y; } public void Display() { Console.WriteLine("X = " + X + " Y = " + Y); } }

该代码定义了一个名为 Point 的结构体,它有两个字段 XY,以及一个构造函数和一个显示方法。

可以使用以下语法来创建结构体的实例:

Copy Code
StructName variableName = new StructName();

或者,可以通过调用结构体的构造函数来创建实例:

Copy Code
StructName variableName = new StructName(argument1, argument2, ...);

以下是一个创建 Point 结构体实例的示例:

Copy Code
Point point1 = new Point(10, 20);

可以通过以下方式访问结构体的字段和方法:

Copy Code
variableName.FieldName variableName.MethodName()

例如,可以这样调用 Display 方法:

Copy Code
point1.Display();

结构体与类的比较

尽管结构体与类有很多相似之处,但是它们也有一些重要的区别。以下是结构体与类之间的区别:

  • 结构体是值类型,而类是引用类型。
  • 结构体不能被继承,而类可以被继承。
  • 结构体不能包含默认的构造函数(或者说是无参构造函数),而类可以。
  • 结构体通常用于表示简单的数据类型,而类通常用于表示更复杂的对象。

结论

在 C# 中,结构体是一种非常有用的数据类型,它可以用于表示简单的数据类型以及执行与类似的操作。与类不同,结构体是值类型,这使得它们更加高效。通过本文介绍的示例,希望您对结构体的定义、使用和区别有更深入的理解。