项目变成了鸡肋,反思之于,痛下决心 好好学习从基础开始 菜鸟学飞(一)

songcan 2007-08-11 06:31:15
代码成了意大利面条,速度成了老牛拉车,痛过之后才发现自己忘了某大虾的至理名言---勿以浮沙筑高台,从现在开始恶补基础
,先提几个问题

1.实例化对象的方法有哪些?除了NEW,反射,反序列化,CLONE外还有哪些方法?
2. 值类型与引用类型,值类型继承与Object类,Object类属于引用类型,那么
值类型就是引用类型?
...全文
808 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidNoWay 2007-08-13
  • 打赏
  • 举报
回复
顶!!
rczjp 2007-08-13
  • 打赏
  • 举报
回复
引用类型是操作指针,指向的是地址,显示的是值,而值类型是直接操作值,复制的时候就是复制了一个对象,引用类型是复制引用指向不同的地址!
gzdiablo 2007-08-13
  • 打赏
  • 举报
回复
目前为止 序列化只用到了dataset的序列化,无非就是将数据整理成通用的数据模型(xml with schema).简单点就是转成xml 至于实现的机制还没有去研究他.反序列化就是反操作咯.

值类型和引用类型,两者的不同点不多. 一般使用中几乎是一样的,当然类操作中的虚拟 反射 多态等特性值类型是没有的
值类型在大量的数据操作时资源消耗比引用类型少.速度快不快没考究过,应该是快的.

gccr 2007-08-13
  • 打赏
  • 举报
回复
值类型不用new.引用类型需要new
值类型在栈中,引用类型在堆中.
楼主的问题我也解释不清,不过猜测是编译器和CLR做了一些事情.而不单单是语言的语法问题了.
danjiewu 2007-08-13
  • 打赏
  • 举报
回复
enum是唯一从ValueType继承的引用类型
------------------------------
纠正一下,enum是值类型的。


值类型在大量的数据操作时资源消耗比引用类型少
-----------------------------------------
这个应该是说反了。


值类型在栈中,引用类型在堆中的说法不知道是谁提出来的,比较片面。
mumutouv 2007-08-12
  • 打赏
  • 举报
回复
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible

这个东西要在 microsoft的网站上面才能看到
和我的msdn描述有点不同
enum是唯一从ValueType继承的引用类型,而其他的从ValueType继承的都是值类型
mumutouv 2007-08-12
  • 打赏
  • 举报
回复
我在msdn里面好象没有看到这样的描述
songcan 2007-08-12
  • 打赏
  • 举报
回复
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible
mumutouv 2007-08-12
  • 打赏
  • 举报
回复
我觉得我这样理解可不可以?
System.Object
System.ValueType
System.Enum
public abstract class Enum : IComparable, IFormattable, IConvertible
Enum是引用类型
System.Object
System.ValueType
System.Boolean
public struct Boolean:IComparable,IConVertible
Boolean是值类型
分析enum和Boolean的区别
就是struct 和 class的 区别
这样我就是不是可以这样认为
定义为struct的就是值类型
定义为class的就是引用类型
那么我从上面的描述还是看不到enum和Boolean是从ValueType继承啊?
songcan 2007-08-12
  • 打赏
  • 举报
回复
谢谢各位的帮助
其实到现在小弟仍然不是很明白,估计很多人同样不明白,
System.Object
System.ValueType
可以看到继承于ValueType的均为值类型,ValueType本身继承了Object类,Object类属于引用类型,一个值类型如Int32它是继承ValueType的,因此Int32是值类型,但他同时它的最根基类是
Object类,Object类属于引用类型,试问一下,Int32既是值类型又是引用类型,好像我是钻牛
角了,但好像还没有看到哪本书提出过这个问题,难道ValueType是NET中一个特别处理的类型?
lnwuyaowei 2007-08-12
  • 打赏
  • 举报
回复
2. 值类型与引用类型,值类型继承与Object类,Object类属于引用类型,那么
值类型就是引用类型?

值类型就是值类型,与引用类型没有关系.值类型到引用类型转换有一个"拆箱与装箱"过程,有时这个转换是自动完成的,所以让人误解.
xingqa 2007-08-12
  • 打赏
  • 举报
回复
学习,长见识了!
zzmsl 2007-08-12
  • 打赏
  • 举报
回复
public struct Int32 : IComparable, IFormattable, IConvertible,
IComparable<int>, IEquatable<int>

struct 类型是一种值类型,通常用来封装小型相关变量组

可见 int 是值类型
yisheng163 2007-08-12
  • 打赏
  • 举报
回复
嗯. 学习一下.  补基础
octverve 2007-08-12
  • 打赏
  • 举报
回复
反射属于后期绑定,比较灵活,但是要动态生成类型,比较费资源(即使用了缓存,也不推荐使

用)

工厂模式,个人感觉就是易于维护管理,性能上没有太大的提升。

序列化与反序列化,利于数据传输吧,还有,有些只能用序列化才可以实现,比如消息队列……

估计听了,初学的也不会懂,还是慢慢学吧,基础打好。
tsy_zx 2007-08-12
  • 打赏
  • 举报
回复
值类型分配在栈中。
引用类型的信息在堆中,而指向堆中的指针在栈中。

也就是 栈储存这值类型的信息。
引用类型的指向堆的指针位置。
不知道我这么说对不对?各位高手
chuxue1342 2007-08-12
  • 打赏
  • 举报
回复
mark
mail_ricklee 2007-08-12
  • 打赏
  • 举报
回复
可以参考
http://www.cnblogs.com/mail-ricklee/archive/2007/07/26/832670.html
蝶恋花雨 2007-08-12
  • 打赏
  • 举报
回复
路过学习我也正在补习基础,学习下
Endlessly 2007-08-12
  • 打赏
  • 举报
回复
关于ValueType的问题,应该从继承自哪个类来看,value types继承自ValueType,而编译器在这里做了手脚,使value types具有"分配在stack""不需要new"等特点,变成值类型,它们的直接父类ValueType仍然是引用类型.
加载更多回复(4)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧