我的问题是: C#中的字符串连接是否安全?如果字符串连接导致意外错误,并且使用StringBuilder替换该字符串连接会导致这些错误消失,那可能表示什么?
背景:我正在开发一个小命令行C#应用程序.它接受命令行参数,执行稍微复杂的SQL查询,并将大约1300行数据输出到格式化的XML文件中.
我的初始程序总是在调试模式下正常运行.但是,在发布模式下,它将获得大约第750个SQL结果,然后因错误而死亡.错误是无法读取某一列数据,即使通过SqlDataReader对象的Read()方法刚刚返回true也是如此.
通过对代码中的所有操作使用StringBuilder来修复此问题,之前已经存在"string1 + string2".我不是在谈论SQL查询循环中的字符串连接,其中StringBuilder已经在使用中.我在谈论代码中较早的两个或三个短字符串变量之间的简单连接.
我的印象是C#足够聪明,可以通过添加几个字符串来处理内存管理.我错了吗?或者这是否表明其他一些代码问题?