C#结构体和类是C#中的两种重要的数据类型,它们都可以用来定义对象,但是它们之间有很多不同之处。
首先,C#结构体是一种值类型,而C#类是一种引用类型。这意味着当使用C#结构体时,它会将数据存储在栈中;而当使用C#类时,它会将数据存储在堆中。
其次,C# 结构体不能声明静态成员;而 C# 类可以声明静态成员。
此外,C# 结构体不能声明虚方法、重写方法、隐藏方法、抽象方法、运行时句柄或者事件处理函数;而 C# 类可以声明这些成员。
最后,C# 结构体不能作为其他的 C# 结构体的基本 C# 类型;而 C# 类可以作为其他 C# 类的基本 C # 类型。
struct Student // 声明一个Student的struct { public string Name; // 声明Name字段 public int Age; // 声明Age字段 public void Print() // 声明Print()方法 { Console.WriteLine("Name:{0},Age:{1}", Name, Age); } }
struct类似于类。
struct是一个值类型,而一个类是一个引用类型。
结构体不支持继承。
结构体隐式地从对象派生,或者更确切地说,是System.ValueType。
一个struct可以拥有一个类可以拥有的所有成员,除了以下:
您无法重写的无参构造函数隐式存在。它执行其字段的按位置零。
定义结构构造函数时,必须显式分配每个字段。
您不能在结构中使用字段初始值设置。
这里是一个声明和调用结构体构造函数的例子:
public struct Point { int x, y; public Point (int x, int y) { this.x = x; this.y = y; } } Point p1 = new Point (); // p1.x and p1.y will be 0 Point p2 = new Point (1, 1); // p1.x and p1.y will be 1
C# for while foreach语句while和do-while循环 while 循环重复执行一组代码,而bool表达式为true。在执行循环体之前测试表达式。...
C#跳转语句C#跳转语句是 break , continuegoto , return 和 throw 。break语句 break 语句结束迭代或switch语句的主体的执行...
C# 不安全代码指针C#可以通过标记为不安全的代码块中的指针进行直接内存操作。不安全代码应使用 /unsafe 编译器选项进行编译。...
C# 扩展方法扩展方法可以用新方法扩展现有类型改变原始类型的定义。扩展方法是静态类的静态方法,其中this修饰符应用于第一个参...
C# 运算符重载运算符可以为自定义类型重载。以下符号运算符可以重载:+(unary) -(unary) ! ~++--+ -*/%|^ == !== =以下运算符也...