编辑
2025-02-03
C# 应用
00
请注意,本文编写于 92 天前,最后修改于 92 天前,其中某些信息可能已经过时。

目录

定义结构
语法
示例
结构中的构造函数
示例
结构中的方法和属性
示例
结构中的静态构造函数
示例
结构中的事件
示例
复制结构
示例
总结
优势
缺点

在C#中,结构(struct)是一种将各种数据类型的变量组合在一起的值类型。尽管它们与类(class)非常相似,都是用户定义的数据类型,可以存储大量不同的数据类型,但结构是值类型,而类是引用类型。用户可以根据需要定义结构,因此它也被称为用户定义的数据类型。

定义结构

在C#中使用struct关键字来定义结构。一个结构可以包含构造函数、常量、字段、方法、属性、索引器、事件等元素。

语法

C#
struct MyStruct { public int MyField; public void MyMethod() { // 方法体 } }

示例

C#
struct Book { public string Title; public string Author; public int Pages; public Book(string title, string author, int pages) { Title = title; Author = author; Pages = pages; } public void DisplayInfo() { Console.WriteLine($"Title: {Title}, Author: {Author}, Pages: {Pages}"); } }

结构中的构造函数

结构不能有无参数的构造函数。它只能有静态构造函数或参数化构造函数。

示例

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

结构中的方法和属性

与类类似,结构可以有方法、自动实现的属性和其他属性。

示例

C#
struct Rectangle { public int Width { get; set; } public int Height { get; set; } public int Area() { return Width * Height; } }

结构中的静态构造函数

结构可以包含静态方法。

示例

C#
struct Counter { public static int Count; static Counter() { Count = 0; } public void Increment() { Count++; } }

结构中的事件

结构可以包含事件,以通知订阅者某个动作的发生。

示例

C#
struct Timer { public event EventHandler Tick; public void OnTick() { if (Tick != null) { Tick(this, EventArgs.Empty); } } }

复制结构

在C#中,可以使用“=”(赋值)运算符将一个结构对象复制到另一个结构对象。

示例

C#
struct Person { public string Name; public int Age; } Person person1 = new Person { Name = "Alice", Age = 30 }; Person person2 = person1;

总结

  • 结构元素包括构造函数、常量、字段、方法、属性、索引器、运算符、事件、嵌套类型等。
  • 结构不能包含无参数构造函数或析构函数。
  • 与类类似,结构可以实现接口。
  • 结构不能作为其他类的基础,也不能继承其他结构。
  • 结构成员不能被指定为抽象、密封、虚拟或受保护。

优势

  • 结构是值类型,存储在栈上,性能较好。
  • 适用于小型数据结构,减少内存开销。

缺点

  • 结构不能继承其他结构或类。
  • 结构不能包含无参数构造函数。
  • 结构成员不能被指定为抽象、密封、虚拟或受保护。

通过本文,我们了解了C#中结构的定义、特点、优势和缺点,并通过多个示例展示了结构的使用方法。希望这些内容对您有所帮助,祝您编码愉快!

本文作者:rick

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!