我最近从VB6转到了VB.NET,我终于了解了内部工作原理.我一直在看我公司现有的代码库,我有点惊讶.
我知道当VB.NET创建一个字符串时,它会看到字符串是否在内存中,如果没有,则创建该字符串的新实例,否则它将新变量指向旧的.但我想知道它是否与其他对象一起使用?
我问的原因是我的新公司有一个DATABASE对象,它基本上包装对象中的数据库连接信息和数据库连接.
我们还有一个BOOK对象和一个PAGES对象.
我在VB6中的最佳实践是创建一个DATABASE对象,然后将(byRef)传递给BOOK,然后传递给PAGES对象,这样你就可以将一个DATABASE对象传递给多个书籍,然后传递给PAGES.
但是,他们如何做到这一点就是在每个PAGE和每个PAGE对象中创建一个DATABASE对象的新实例,这意味着你可以拥有多个实例(实际上是数千个)实际上完全相同的对象.
这是明智的吗?或者像Strings一样处理对象?
您对字符串的理解仅适用于字符串常量 - 而不是以任何其他方式创建的字符串.
如果成千上万的数据库对象都"相同",那么听起来他们实际上应该将引用传递给相同的对象.您需要了解引用和对象之间的区别.
最后,代码中的任何内容都不应该保留在连接上.打开连接几乎总是更好,做你需要的任何事情,然后再关闭它.连接池系统可以确保重用与数据库的真实连接(创建起来相对昂贵).