“Vb.net网格视图”;指针;?

“Vb.net网格视图”;指针;?,vb.net,gridview,pointers,Vb.net,Gridview,Pointers,我有与gridview交互的代码,多个gridview的代码完全相同。那么我可以这样做吗: Dim gridViewPointer As GridView If (gridViewNumber = 1) Then gridViewPointer = GridView1 ElseIf (gridViewNumber = 8) Then gridViewPointer = GridView8 ...

我有与gridview交互的代码,多个gridview的代码完全相同。那么我可以这样做吗:

Dim gridViewPointer As GridView

        If (gridViewNumber = 1) Then
            gridViewPointer = GridView1
        ElseIf (gridViewNumber = 8) Then
            gridViewPointer = GridView8
        ...
然后

If (gridViewPointer.DataSourceID = SQLDatasourcetemp.ID) Then
...
这会起作用吗?还是有其他方法

编辑:
我正在检查以确保用户输入到gridview的数据是正确的。它可能是4个gridview中的一个,检查完全相同,代码中唯一更改的参数是gridview1/gridview2/等等。因此,如果我可以使用指向正确gridview的“指针”,那么我可以删除所有重复的代码。

您所问的是正确的。设置gridViewPointer=GridView1时,实际上只存储指向GridView1对象的指针,而不是复制对象,因此在设置之后对gridViewPointer执行的任何操作都将直接控制GridView1。

是,这根本不是问题

无论何时将对象指定给变量,实际上都是将内存引用指定给该变量。使用该引用,您可以读取、写入和调用对象的所有属性和方法,就好像它是原始的一样

您可能希望了解值类型和引用类型之间的差异。当通过函数调用传递数据时,这主要是一个问题

事实上,我可能会创建一个新函数来调用gridview

Private Sub GridOperations(ByVal grid as GridView)
   //Do work here.
End Sub

If (gridViewNumber = 1) Then
   GridOperations(GridView1)
ElseIf (gridViewNumber =8) Then
   GridOperations(GridView8)
...

我不完全确定我是否听懂了。你能给我们多一点上下文吗?我把它都放在一个函数中,我只是把那部分删掉了。:)