【问题标题】:Vb.net Gridview "pointer"?Vb.net Gridview“指针”?
【发布时间】:2010-08-18 19:14:18
【问题描述】:

我有与 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/etc。因此,如果我可以使用指向正确网格视图的“指针”,那么我可以消除所有重复的代码。

【问题讨论】:

  • 我不完全确定我是否遵循。您能给我们提供更多背景信息吗?

标签: vb.net gridview pointers


【解决方案1】:

是的,这根本不是问题。

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

您可能想了解值类型和引用类型之间的区别。这主要是通过函数调用传递数据时的一个问题。

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】:

你问的是正确的。当设置gridViewPointer = GridView1时,实际上只是存储了指向GridView1对象的指针,并没有复制该对象,所以设置后对gridViewPointer执行的任何动作都会直接控制GridView1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多