Vb.net Gridview "указатель"? - PullRequest
       2

Vb.net Gridview "указатель"?

0 голосов
/ 18 августа 2010

У меня есть код, который взаимодействует с видом сетки, и код точно такой же для нескольких видов сетки. Так что я могу сделать что-то вроде этого:

Dim gridViewPointer As GridView

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

, а затем

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

Будет ли это работать или есть другой способ сделать это?

Edit: Я проверяю, чтобы данные, которые пользователь вводит в сетку, были правильными. Это может быть один из 4 видов сетки, и проверки точно такие же, единственный параметр, который изменяется в коде, это gridview1 / gridview2 / etc Поэтому, если я могу использовать «указатель» на правильный вид сетки, я могу уничтожить весь дублирующий код.

Ответы [ 2 ]

1 голос
/ 18 августа 2010

Да, это совсем не проблема.

Всякий раз, когда вы присваиваете объект переменной, вы фактически назначаете ссылку на эту переменную в памяти.Используя эту ссылку, вы можете читать, записывать и вызывать все свойства и методы объекта, как если бы он был там оригинальным.

Возможно, вы захотите ознакомиться с различиями между значениями и ссылочными типами.Это прежде всего проблема при передаче данных через вызовы функций.

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

На самом деле, я бы, вероятно, создал бы новую функцию для вызова в виде сетки ...

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

If (gridViewNumber = 1) Then
   GridOperations(GridView1)
ElseIf (gridViewNumber =8) Then
   GridOperations(GridView8)
...
0 голосов
/ 18 августа 2010

То, что вы спрашиваете, правильно. Когда вы устанавливаете gridViewPointer = GridView1, вы на самом деле сохраняете только указатель на объект GridView1, а не копируете объект, поэтому любое действие, которое вы выполняете над gridViewPointer после набора, будет напрямую управлять GridView1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...