代码之家  ›  专栏  ›  技术社区  ›  Shawn

VB.NET网格视图“指针”?

  •  0
  • Shawn  · 技术社区  · 14 年前

    我有与一个网格视图交互的代码,并且多个网格视图的代码完全相同。我可以这样做吗?

    Dim gridViewPointer As GridView
    
            If (gridViewNumber = 1) Then
                gridViewPointer = GridView1
            ElseIf (gridViewNumber = 8) Then
                gridViewPointer = GridView8
            ...
    

    然后

    If (gridViewPointer.DataSourceID = SQLDatasourcetemp.ID) Then
    ...
    

    这是可行的还是有其他方法可以做到这一点?

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Mike Cellini    14 年前

    是的,这根本不是问题。

    每当你给一个变量分配一个对象时,你实际上是在给这个变量分配一个内存引用。使用该引用,您可以读取、写入和调用对象的所有属性和方法,就好像它是原始的一样。

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

    http://msdn.microsoft.com/en-us/library/t63sy5hs%28VS.80%29.aspx

    实际上,我可能会创建一个新函数来调用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)
    ...
    
        2
  •  0
  •   davisoa    14 年前

    你的要求是正确的。当设置gridviewpointer=gridview1时,实际上只存储指向gridview1对象的指针,而不复制该对象,因此在设置之后对gridviewpointer执行的任何操作都将直接控制gridview1。