C#入门之结构类型Struct

1. Struct结构类型介绍

在C#中,结构类型(Struct)是一种用户自定义的值类型,它允许开发者在程序中创建自己的数据类型。

1.1 结构类型与类的区别

与类不同的是,结构类型是值类型,而类是引用类型。

当一个结构类型的变量被赋值给另一个变量时,会创建完全相同的副本。而类的变量赋值时只是引用指向同一个对象。

此外,结构类型通常用于表示简单的数据结构,而类则用于表示更复杂的对象。

1.2 结构类型的声明

结构类型的声明使用关键字struct,后面跟结构类型的名称。

struct Person

{

public string Name;

public int Age;

}

在上面的代码中,Person结构定义了两个成员变量NameAge,它们分别用于存储人的姓名和年龄。

2. 结构类型的使用

2.1. 创建结构类型的实例

创建结构类型的实例与创建类的实例类似,使用new关键字,结构类型的默认构造函数会自动调用。

Person p = new Person();

在上面的代码中,创建了一个Person结构的实例p

2.2. 对结构类型的操作

对结构类型的操作可以通过.运算符来访问结构的成员变量。以下是对Person结构实例的一些操作:

p.Name = "Tom";

p.Age = 25;

在上面的代码中,为结构实例pNameAge成员变量赋值。

3. 结构类型的特点

3.1. 结构类型的不可继承

与类不同的是,结构类型不能继承其他结构类型或类。

结构类型是一种最基本的用户定义类型,它不能直接扩展或重写已有的结构类型或类。

3.2. 结构类型的默认构造函数

结构类型有一个默认的无参数构造函数。无论是否显式定义了构造函数,都可以使用这个默认构造函数。

对于没有显式定义构造函数的结构类型,编译器默认会生成一个默认构造函数。

3.3. 结构类型的默认值

当创建一个结构类型的实例时,如果没有显式地为成员变量赋值,它们将被自动初始化为默认值。

对于数值类型的成员变量,默认值为0;对于字符串类型的成员变量,默认值为空字符串;对于布尔类型的成员变量,默认值为false。

4. 结构类型与类的选择

4.1. 结构类型的优势

结构类型在某些场景下具有一些优势:

结构类型是值类型,赋值操作直接复制值,性能较好;

结构类型适合用于表示简单的数据结构,如坐标、日期等;

结构类型适合用于创建轻量级的对象。

4.2. 类型的选择

在使用结构类型和类时,需要根据具体需求进行选择:

如果需要创建一个有行为的对象,使用类;

如果需要实现对象的继承关系,使用类;

如果需要表示一个简单的数据结构,并且希望赋值操作是复制值,使用结构类型。

5. 总结

本文介绍了C#中的结构类型(Struct)以及如何使用它们。

与类不同的是,结构类型是值类型,适合用于表示简单的数据结构。通过示例代码,我们了解了结构类型的声明、如何创建结构实例以及结构类型的特点。

在选择使用结构类型还是类时,需要根据具体需求进行考虑。

结构类型的优势:

结构类型是值类型,赋值操作直接复制值,性能较好;

结构类型适合用于表示简单的数据结构,如坐标、日期等;

结构类型适合用于创建轻量级的对象。

参考文献

[1] Microsoft Docs. (2021). Structures. Retrieved from https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/struct

后端开发标签