Csharp结构体介绍及使用学习笔记
Csharp结构体介绍
1.在C#中,结构体是一种值类型,用于封装少量的数据。结构体使用 struct 关键字定义,并且可以包含数据字段、方法、属性、索引器、运算符重载和构造函数。结构体不能继承其他的结构体或类,也不能被其他结构体或类继承。以下是结构体的一些基本特性:
2.定义结构体:
1 | public struct Point |
3.实例化结构体:
结构体可以通过直接声明或使用 new 关键字来实例化。
1 | Point p1 = new Point(); |
4.结构体是值类型:
结构体是值类型,所以当它们被赋值给另一个变量时,它们的值会被复制。
5.方法和属性:
结构体可以包含方法和属性,就像类一样。
1 | public struct Rectangle |
6.运算符重载:
结构体可以重载运算符,以提供自定义的操作。
1 | public struct Vector |
7.结构体与类的区别:
结构体是值类型,而类是引用类型。
结构体默认继承自 System.ValueType,而类默认继承自 System.Object。
结构体不能有析构函数,而类可以。
结构体不能实现接口,而类可以。
8.装箱和拆箱:
当结构体被赋值给一个对象类型(比如 object 或接口类型)时,会发生装箱操作,将值类型转换为引用类型。相反的操作称为拆箱。
使用结构体时,通常是为了创建轻量级的、不可变的数据结构,或者当你需要确保数据被复制而不是引用时。
Csharp结构体函数
1.在C#中,结构体(struct)是一种值类型,它可以用来定义轻量级的数据结构。结构体可以包含数据字段、属性、方法和构造函数等。以下是一些关于C#结构体中函数的基本示例:
2.结构体定义
1 | public struct Point |
3.使用结构体
1 | Point p = new Point(10, 20); |
4.结构体与方法
构造函数:用于初始化结构体的字段。
方法:可以定义方法来执行特定的操作,比如上面的PrintCoordinates方法。
属性:使用get和set块来定义属性,允许外部代码以属性的方式访问结构体的字段。
重写方法:可以重写如ToString等方法,以提供结构体的自定义字符串表示。
5.结构体的值类型特性
结构体是值类型,赋值和参数传递时会复制整个结构体。
结构体不能被继承,但可以实现接口。
结构体默认有Equals、GetHashCode和ToString方法,但通常需要根据需要重写这些方法。
6.结构体与类的区别
类是引用类型,而结构体是值类型。
类可以继承其他类,而结构体不能继承其他结构体或类。
结构体的字段默认为private,而类的字段默认为private。
这些是C#中结构体和函数的基本用法。根据具体需求,你可以在结构体中定义更多复杂的逻辑和方法。