DataSet ds = new DataSet()与DataSet ds =Null有什么区别?

单线程加锁 2008-12-15 03:38:24
如题
...全文
681 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
单线程加锁 2008-12-15
  • 打赏
  • 举报
回复
谢谢各位了.
dq512000 2008-12-15
  • 打赏
  • 举报
回复
楼上幽默。。。。
new 相当于多分配了空间。。。
不是赋值。。。
soldierluo 2008-12-15
  • 打赏
  • 举报
回复
DataSet ds = new DataSet(); //这只鸟讨饭,有一只碗,不过碗里面是空的

DataSet ds =Null; //这只鸟讨饭,连只碗都没有,只有一双手。。。
chocolateboy 2008-12-15
  • 打赏
  • 举报
回复
1楼说了我想说的.
在循环中使用 ds = new DataSet(); 比 DataSet ds = new DataSet(); 节省空间?
justindreams 2008-12-15
  • 打赏
  • 举报
回复
new 不是复制,new是分配空间而已。
justindreams 2008-12-15
  • 打赏
  • 举报
回复
new关键字是在内存中分配了地址
如果是null,则只是定义了变量,没有分配具体空间
单线程加锁 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heyu1000 的回复:]
DataSet ds = new DataSet();
是在堆栈中分配了一个ds的变量,并在堆中分配了具体的空间,ds这个变量的值其实是堆中的内存首地址。
DataSet ds =Null;
只是在堆栈中定义了一个ds的变量,但是并没有在堆中分配具体的空间,所以这个ds其实还不能用,里面没有存值。
[/Quote]
你的意思是,NEW 则已经赋值,没NEW的是没赋值的是吧?
heyu1000 2008-12-15
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
是在堆栈中分配了一个ds的变量,并在堆中分配了具体的空间,ds这个变量的值其实是堆中的内存首地址。
DataSet ds =Null;
只是在堆栈中定义了一个ds的变量,但是并没有在堆中分配具体的空间,所以这个ds其实还不能用,里面没有存值。

111,130

社区成员

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

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

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