C# 结构体(Struct)学习笔记
什么是结构体?
在 C# 中,结构体是一种简单的数据类型,它可以包含多种类型的数据成员,如字段、属性、方法等。与类不同,结构体是值类型,这意味着它们被存储在堆栈上,而不是在堆上分配内存。此外,结构体也是 sealed 的,不能被继承。
如何定义和使用结构体?
定义结构体的语法如下:
Copy Codestruct StructName
{
// 字段和方法定义
}
以下是一个结构体的示例代码:
Copy Codepublic 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
的结构体,它有两个字段 X
和 Y
,以及一个构造函数和一个显示方法。
可以使用以下语法来创建结构体的实例:
Copy CodeStructName variableName = new StructName();
或者,可以通过调用结构体的构造函数来创建实例:
Copy CodeStructName variableName = new StructName(argument1, argument2, ...);
以下是一个创建 Point
结构体实例的示例:
Copy CodePoint point1 = new Point(10, 20);
可以通过以下方式访问结构体的字段和方法:
Copy CodevariableName.FieldName
variableName.MethodName()
例如,可以这样调用 Display
方法:
Copy Codepoint1.Display();
结构体与类的比较
尽管结构体与类有很多相似之处,但是它们也有一些重要的区别。以下是结构体与类之间的区别:
- 结构体是值类型,而类是引用类型。
- 结构体不能被继承,而类可以被继承。
- 结构体不能包含默认的构造函数(或者说是无参构造函数),而类可以。
- 结构体通常用于表示简单的数据类型,而类通常用于表示更复杂的对象。
结论
在 C# 中,结构体是一种非常有用的数据类型,它可以用于表示简单的数据类型以及执行与类似的操作。与类不同,结构体是值类型,这使得它们更加高效。通过本文介绍的示例,希望您对结构体的定义、使用和区别有更深入的理解。