ByVal数据表操作

 茶人2502933107 发布于 2023-02-11 03:52

我想我缺少有关DataTables工作原理的一些基本知识。以下过程从开始GetDatawhat以填充的DataTable形式引入。以下所有代码所做的就是传递数据表的副本,对其进行操作,然后将其返回:

Sub GetData(ByVal what As DataTable)
    Dim Part As DataTable = Generate(what)
End Sub


Function Generate(ByVal brown As DataTable)
    Dim lameface As DataTable = DoStuff(brown)

    Return lameface
End Function


Function DoStuff(ByVal cow As DataTable)
    Dim result As DataTable = cow

    result.Rows.RemoveAt(0)

    Return result
End Function

这上面写的方式,功能DoStuff将去除顶行result cow。同样,即使将第一行发送为,brownwhat将删除该行ByVal

如果我将第一行DoStuff

Dim result As DataTable = cow

Dim result As DataTable = cow.copy

然后cowbrownwhat被单独留在家中。为什么是这样?将参数标记ByVal为应该发送对象的副本而不是原始对象,那么为什么在实例化时告诉我使用副本result呢?如果我使用整数而不是数据表执行类似的过程,则它会按我期望的那样工作。我对数据表缺少什么?

我在MSDN上有关数据表的文章中闲逛,却没有发现任何有关此问题的信息。谢谢你的帮助!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有