【发布时间】:2014-08-07 21:56:08
【问题描述】:
这听起来像是一个愚蠢的问题,但我只是偶然发现了这个问题。我知道您可以使用ref 通过引用传递参数。但是我有这个方法
public void SaveRecordsIntoTemporaryTable(DataTable objDataTable, string userSessionID)
{
// The objDataTable has 5 columns "Id", "Name", "Tag_1", "Tag_2", "Tag_3"
// Now in here I remove "Tag_1", "Tag_2", and "Tag_3"
objDataTable.Columns.Remove("Tag_1");
objDataTable.Columns.Remove("Tag_2");
objDataTable.Columns.Remove("Tag_3");
...
}
现在我在第三行设置了一个调试点,但是在删除此列"Tag_3" 并将光标悬停在参数中的objDataTable 上后,它显示的DataTable 也删除了列?那么,它是通过引用传递的吗?
更新
好的,如果被reference通过,我用ref会有什么不同?
【问题讨论】:
-
因为
DataTable是一个引用类型。 -
@Razort4x,参考您的编辑:它不是通过引用传递的。但是当您使用
ref关键字时,您可以修改原始引用,例如将其设置为null