【C#】结构体与类的比较

C#的类与结构体是初学者很容易混淆的两个概念,本文以表格的方式整理了两者的相同点和不同点。

博文首发地址:http://bbs.lanou3g.com/forum.php?mod=viewthread&tid=5151&extra=page%3D1

大分类 小分类 结构体
特点 变量类型 值类型 引用类型
创建方式 new / 直接声明 new
内存位置 堆栈或内敛 托管堆
优点 小巧、轻便、高性能 功能强大
数据成员 字段 可以有,但不能赋值 可以有,可以赋值
常量
事件
函数成员 属性
方法
虚方法
抽象方法
构造器 有,但不能重写无参(默认的)构造器
析构器
运算符重载
索引器
面向对象基本特征 封装 支持 支持
继承 不支持,但结构派生于System.Object 支持
多态 不支持 支持

时间: 2024-10-12 23:56:05

【C#】结构体与类的比较的相关文章

C++中结构体和类的区别

在C++中,结构体是一种特殊形态的类. 结构体和类的唯一区别就是:  结构体和类具有不同的默认访问控制属性. 类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(public) C++中,不使用结构体丝毫不会影响程序的表达能力.C++之所以要引入结构体,是为了保持和C程序的兼容性. 但有时仍会在C++中使用结构体,是因为,可以使用结构体将不同类型数据组成整体,方便于保存数据.(若用类来保存,因类中成

结构体和类的唯一区别就是类函数没有加说明是私有而结构体函数是公有

结构体和类的唯一区别就是              类函数没有加说明是私有                   而   结构体函数是公有

Swift结构体与类

在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之.而Swift语言却非常重视结构体,把结构体作为实现面向对象的重要手段.Swift中的结构体与C++和Objective-C中的结构体有很大的差别,C++和Objective-C中的结构体只能定义一组相关的成员变量,而Swift中的结构体不仅可以定义成员变量(属性),还可以定义成员方法.因此,我们可以把结构体看做是一种轻

介绍C#结构体与类区别

1. 结构体与类定义方式 结构体定义使用struct类定义使用class 结构体: struct testDemo{ int num; void action(){ } } 类: class testDemo{ int num; void action(){ } } ================== 2. 结构体与类的成员初始化 结构体成员变量在声明时不能赋值,而类在声明变量时会自动写入构造函数完成赋值(即只能定义,不能执行). 结构体中隐式构造函数存在,不能手动写,其余构造函数在手动编写中

[转]C#中的结构体与类的区别

C#中的结构体与类的区别 经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字struct.在语法上其实类和结构有着很多相似的地方. 定义类的语法 1 class Person 2 { 3 private string name; 4 private int age; 5 6 public void SayHi() 7 { 8 Console.WriteL

Runtime的初步认识——结构体与类

Runtime的初步认识 Runtime的初步认识 Runtime介绍 类与结构体的关系 结构体解析 结构体的作用 Runtime介绍 学习一个东西至少要先知道它是个啥,你一定听说过"运行时是 Objective-C 的一个特色",这里的"运行时"就是指 runtime 了. runtime是在自 iOS 平台开放并基于 Objective-C 语言开发后的一个编程语言上的高级技术. 学习runtime的目的并不是为了开发,而是让你更好的理解 Objective-C

结构体与类

最近开始想学习下Swift,下了Swift3.0中文版PDF,间断性看了几天,发现看不进去,所以还是从实践上学习吧,直接创建工程搭代码,多问度娘. 在此记录下对结构体与类的理解,之前学OC很少碰自定义结构体,所以理解上比较模糊混淆.好吧,我不是个合格的初级开发者. 结构体与类很相似,如初始化和属性访问,定义语法区别关键字struct和class. 在日常开发中,Swift在两者选择上建议第一选择是结构体 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font:

C++结构体 和类

1 #include <iostream> 2 using namespace std; 3 4 struct father 5 { 6 /* 7 virtual bool set() = 0; 8 virtual bool get() = 0; 9 */ 10 11 virtual bool set(int a, int b) = 0; 12 virtual bool get(int a, int *b) = 0; 13 14 }; 15 struct jack :public father

仿函数--创建结构体或类的内部函数指针

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

Swift:什么时候使用结构体和类

发布于 2015 年 8 月 14 日 世界上对swift持续不断的讨论话题中有一个就是什么时候使用结构体什么时候使用类.我想我今天要贡献一些自己的想法. 值 VS 引用 答案其实很简单:当你需要值语义(所谓值语义是一个对象被系统标准的复制方式复制后,与被复制的对象之间毫无关系,可以彼此独立改变互不影响)的时候使用结构体,当你需要引用语义(所谓值语义是一个对象被系统标准的复制方式复制后,与被复制的对象之间毫无关系,可以彼此独立改变互不影响)的时候使用类.就是那样! 欢迎下周再来... 等等! 怎