这听起来像是一个愚蠢的问题,但我偶然发现了这一点.我知道您可以使用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");
...
}
Run Code Online (Sandbox Code Playgroud)
现在我在第三行设置了一个调试点,但在删除此列后,我将"Tag_3"光标悬停objDataTable在参数中,DataTable它显示还删除了列?那么,它是通过引用传递的吗?
UPDATE
好吧,如果它过去了reference,如果我使用它会有什么不同ref?
那么,它是通过引用传递的吗?
它的地址是按值传递的.由于DataTable是一个类(引用类型),它的地址通过值传递,因此您可以看到更改.
尝试做:
objDataTable = null;
Run Code Online (Sandbox Code Playgroud)
如果它真的通过引用传递,那么您将看到调用者设置DataTable为null但不会发生.
| 归档时间: |
|
| 查看次数: |
8038 次 |
| 最近记录: |