C# 结构体 struct 的基本知识
时间:2021-06-22 17:51:38
收藏:0
阅读:0
结构就是几个数据组成的数据结构,它与类共享几乎所有相同的语法,但结构比类受到的限制更多。
结构是一种值的类型,通常用来封装一组相关的变量,结构中可以包括构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等。但如果要同时包括上述几种成员,则应该考虑使用类。结构实际是将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。例如,把公司里的职员看作一个结构体,可以将个人信息放入结构体中,主要包含姓名、年龄、出生年月、性别、籍贯、婚否、职务。
在 C# 中的结构与传统的 C 或 C++ 中的结构不同。结构具有以下特点:
- 结构是值的类型。
- 向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。
- 结构的实例化可以不使用new运算符。结构可以声明构造函数,但它们必须带参数。当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。
- 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。
- 一个结构不能从另一个结构或类继承。所有结构都直接继承自
System.ValueType
,后者继承自System.Object
。 - 结构可以实现接口。接口可实现一个或多个接口。
- 在结构中初始化实例字段是错误的。// 不能在结构中初始化字段。
- 结构成员不能指定为
abstract
、virtual
或protected
。
说明:
在结构声明中,除非字段被声明为const或static
,否则无法初始化。
实例:
class Program
{
public struct Rect//定义一个矩形结构
{
public double width;//矩形的宽
public double height;//矩形的高
public Rect(double x, double y)
{
width = x;
height = y;
}
public double Area()
{
return width * height;
}
}
static void Main(string[] args)
{
Rect rect1;//创建矩形结构
rect1.width = 5;//为矩形宽赋值
rect1.height = 3;//为矩形高赋值
Console.WriteLine("矩形面积为:" + rect1.Area());
Rect rect2 = new Rect(6, 4);//使用构造函数实例化矩形结构
Console.WriteLine("矩形面积为:" + rect2.Area());
}
}
输出:
矩形面积为:15
矩形面积为:24
请按任意键继续. . .
类和结构有以下几个基本的不同点:
- 类是引用类型,结构是值类型。
- 结构不支持继承。
- 结构不能声明默认的构造函数。
参考:
1. [link-01](https://www.runoob.com/csharp/csharp-struct.html) // 菜鸟教程
2. 《C# 入门到精通》 -> P142
评论(0)