社区
C#
帖子详情
傻傻地问:C#中的类和结构到底不同在哪里?
yestoall
2002-12-04 04:20:51
我知识有限,只知道类和结构地相同点:
1、可以被创建在堆或堆栈上;
2、元素地默认访问为私有的;
3、元素有默认值;
4、均可以定义方法;
5、均可以包含构造函数和析构函数。
请各位大侠指点一下,类和结构的不同点在哪里?
...全文
44
8
打赏
收藏
傻傻地问:C#中的类和结构到底不同在哪里?
我知识有限,只知道类和结构地相同点: 1、可以被创建在堆或堆栈上; 2、元素地默认访问为私有的; 3、元素有默认值; 4、均可以定义方法; 5、均可以包含构造函数和析构函数。 请各位大侠指点一下,类和结构的不同点在哪里?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yestoall
2002-12-05
打赏
举报
回复
本贴已结。
yarshray、TheAres各得10分。
再次致谢!
TheAres
2002-12-04
打赏
举报
回复
真想念老一辈的MVP在的时候的C#论坛啊...
>>1、可以被创建在堆或堆栈上;
对头. 但是有些不一样.比如两个结构a,b, a=b以后是拷贝了两段内存,而类的对象a,b, a=b 只是一段.
>>2、元素地默认访问为私有的;
对头
>>3、元素有默认值;
都没有.(也可能我们说的不是一个东西,你再详细说说).
>>4、均可以定义方法;
对头.
>>5、均可以包含构造函数和析构函数。
结构有构造函数,但是不能是没有任何参数的构造函数.(下面的代码出错)
public struct A
{
public int a;
public int b;
A()
{
a = 0;
b = 0;
}
}
结构不能有析构函数。(下面的代码出错)
public struct A
{
public int a;
public int b;
public A(int aa, int bb)
{
a = 0;
b = 0;
}
public ~A()
{
}
}
最后,我补充一些我知道的东西.
1.结构不支持继承.
2.对于大的结构体,在作为参数传递时,如果(不是必须)能使用ref,尽量使用,因为这样传递过去的是地址,而不是一个拷贝.但是这是就可以改变结构体的值了.
3,结构体一个非常由于的地方,就是在和(unsafe)代码交互时.它指定字段在内存中的分布,你可以参考StructLayout的一些帮助.
To :shems(流氓猪)
4.>>听说在Java里面没有结构,不知是不是真的.
是真的.Java中是通过类和接口来实现的.
5.>>如果是真的话,为什么C#还会保留结构呢?
可能和上面的3有关吧.
shems
2002-12-04
打赏
举报
回复
这个,好像不能说谁更强大吧……
类和结构几乎没有什么不同,根本的差别只在于类是引用类型,结构是值类型。
引用类型和值类型的区别,相信不用我说了吧。呵呵……
不过在C#里我几乎没用过结构,全部都用类,结构要说有优点的话,可能就是性能上的吧。
听说在Java里面没有结构,不知是不是真的。如果是真的话,为什么C#还会保留结构呢?只是因为要继承C、C++吗?
如果我有什么说错了,请大家指正。我很菜的说。
yarshray
2002-12-04
打赏
举报
回复
概念都不一样
使用范围当然也不一样.属性的话在类里使用,类是引用类型,数据放在
堆上.值类型在堆栈中分配.
yarshray
2002-12-04
打赏
举报
回复
参考该贴我今天早上答的
http://expert.csdn.net/Expert/topic/1230/1230416.xml?temp=.8882257
yestoall
2002-12-04
打赏
举报
回复
对!
我要问的就是哪里强大?
kalven
2002-12-04
打赏
举报
回复
structure value型
class reference 型
xhan2000
2002-12-04
打赏
举报
回复
类要强大得多
结构可以看成简化的类
Visual
C#
2010从入门到精通_周靖_part2
Visual
C#
2010从入门到精通(分卷2) 基本信息 原书名:Microsoft Visual
C#
2010 Step by Step 原出版社:Microsoft Press 作者:(英)John Sharp 译者:周靖 丛书名:微软技术丛书 出版社:清华大学出版社 ISBN:9787302234289 上架时间:2010-9-6 出版日期:2010年8月 内容简介
C#
作为微软的旗舰编程语言,深受程序员喜爱,是他们编写高效应用程序的首选语言。Visual
C#
2010新增了大量可圈可点的丰富特性,本书围绕着基础知识和这些新特性全面介绍了如何利用Visual Studio 2010和.NET Framework 4.0编写应用程序。书
中
沿袭深受读者欢迎的Step by Step风格,通过丰富的练习引导读者逐步构建Windows应用程序,访问SQL Server数据库,开发ASP.NET Web应用程序,创建并使用Web服务等。 全书共29章,
结构
清晰,叙述清楚。所有练习均在Visual Studio 2010简体
中
文版上进行过全面演练。无论是刚开始接触面向对象编程的新手,还是打算转移到
C#
的具有C,C++或者Java基础的程序员,都可以从本书
中
吸取到新的知识。 完整的简体
中
文版,PDF格式,带详细书签。
Visual
C#
2010从入门到精通_周靖_part1
Visual
C#
2010从入门到精通(分卷1) 基本信息 原书名:Microsoft Visual
C#
2010 Step by Step 原出版社:Microsoft Press 作者:(英)John Sharp 译者:周靖 丛书名:微软技术丛书 出版社:清华大学出版社 ISBN:9787302234289 上架时间:2010-9-6 出版日期:2010年8月 内容简介
C#
作为微软的旗舰编程语言,深受程序员喜爱,是他们编写高效应用程序的首选语言。Visual
C#
2010新增了大量可圈可点的丰富特性,本书围绕着基础知识和这些新特性全面介绍了如何利用Visual Studio 2010和.NET Framework 4.0编写应用程序。书
中
沿袭深受读者欢迎的Step by Step风格,通过丰富的练习引导读者逐步构建Windows应用程序,访问SQL Server数据库,开发ASP.NET Web应用程序,创建并使用Web服务等。 全书共29章,
结构
清晰,叙述清楚。所有练习均在Visual Studio 2010简体
中
文版上进行过全面演练。无论是刚开始接触面向对象编程的新手,还是打算转移到
C#
的具有C,C++或者Java基础的程序员,都可以从本书
中
吸取到新的知识。 完整的简体
中
文版,PDF格式,带详细书签。
VSCView:OSD的Steam控制器
VSC视图 OSD的Steam控制器 您需要从源代码编译此项目的HID库分支进行粗略编辑: : 主题 双重冲击4 Nielk1默认 蒸汽控制器 Nielk1默认 ahNOMinal 2通过 Buh-Lack Docteur Controller通过 黑色模板由 大纲2018 大纲2019通过 灰色最小由 线条艺术 Nielk1的傻/猫爪子 尼尔·尼克尔(Nielk1)的消防拍卖会,作品《 白色Cerberus 蒸汽控制器棋Nielk1默认 元素属性 根 名称-字符串 身高-人数 宽度-数量 版本-主题
结构
版本 儿童-元素数组 物品 "type": null null-未提供AKA x-数字,位置 y-数字,位置 rot-数字,顺时针旋转度 winform.smoothing-枚举,有效值: “默认” “高速” “高质量” “没有任何” “ AntiAlias
c#
结构
体与
类
区别
性能
不同
:由于
结构
体的实例被分配在栈上,所以在一些情况下,使用
结构
体比使用
类
更高效,比如在大量创建小对象时。但是,
结构
体也有一些限制,比如它的大小不能超过 16KB。针对默认构造函数的处理
不同
:
结构
体默认有一个无参的构造函数,而
类
如果没有显式定义构造函数,就会默认有一个无参的构造函数。内存分配方式
不同
:
结构
体是值
类
型,它的实例被分配在栈上,而
类
是引用
类
型,它的实例被分配在堆上。赋值方式
不同
:
结构
体赋值时是按值传递,即会复制一份,而
类
赋值时是按引用传递,即会复制一个引用。关键字定义,而
类
使用。
c#
类
现在好多人在学习
c#
语法时都对
类
和
结构
体内容
傻傻
的分不清楚;个人觉得人要是对
类
和
结构
体分不清的话,说明你的
c#
还没有入门呢!对面向对象思想同样了解欠缺。这次打算分成三篇文章来写,先单独述说
类
,
结构
体,然后在讲讲它们之间的异同。不足之处请大家多多指导。
c#
类
类
的定义: 什么是
类
呢?简单的来说,
类
是一种活动的数据
结构
。
C#
110,532
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章