代码改变世界

C#中类和结构的一个区别...

2009-02-11 23:03  Robiplus  阅读(404)  评论(2)    收藏  举报

最近在努力学习C#语法...今晚在左一个二叉树的迭代遍历时发生了点错误...

代码如下:

 

 

Code

 

 

Code

 

 

而调试代码是:...

 

Code

 

结果发生问题说 迭代到树尖时SubItems为null....后来在迭代中加了个判断是否为null就貌似解决了....但不对啊???为什么书没有啊?难道输错了...

 

最后 终于找到问题是录入错误把Pair<T>弄成了class...而BinaryTree中持有一个Pair类型的SubItems的“引用”...不是值类型..这样会直接初始化为null所以错了

 

那怎么让他初始化为一个默认的Pair 加个构造函数可以 但书上是把class改成Struct后就是持有一个值类型了...这样初始化会调用一个结构的默认值(感觉像默认构造函数...),就是一个Pair...每个成员都是null...终于搞懂了...

 

哈哈 说了这么多 我今晚被这个也搞了好长时间。。。所以在这说下,其实就是值类型和引用的区别但是用的时候就忘了..留在这提醒下自己,也希望对大家有用...第一篇博客哈!