2010-08-18 4 views
0

나는 gridview와 상호 작용하는 코드를 가지고 있으며 코드는 여러 gridviews에 대해 정확히 동일합니다. 그래서 나는이 같은 작업을 수행 할 수 있습니다Vb.net 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 gridviews 중 하나가 될 수 있으며, 수표는 정확히 동일합니다, 코드에서 변경되는 유일한 매개 변수는 gridview1/gridview2/etc입니다. 그래서 올바른 gridview에 "포인터"를 사용할 수 있다면 모든 중복 코드를 제거 할 수 있습니다.

+0

내가 따라 완전히 확실하지 않다. 좀 더 상황을 알려줄 수 있니? –

+0

수정 된 원래 질문입니다. – Shawn

답변

1

예. 전혀 문제가되지 않습니다.

개체를 변수에 할당 할 때마다 실제로 변수에 메모리 참조가 할당됩니다. 이 참조를 사용하면 객체의 모든 속성과 메서드를 독창적 인 것처럼 읽거나 쓰거나 호출 할 수 있습니다.

값 유형과 참조 유형의 차이점을 읽어 보시기 바랍니다. 이는 주로 함수 호출을 통해 데이터를 전달할 때 우려 할 사항입니다. 내가 아마있는 gridview에 전화를 할 수있는 새로운 기능을 만들 것 사실

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

+1 기능의 아이디어에 대한 – MarkJ

+0

나는 모든 기능을 가지고 있는데, 나는 그 부분을 떠났다. :) – Shawn

0

당신이 묻는 것은 정확합니다. gridViewPointer = GridView1을 설정하면 객체를 복사하지 않고 GridView1 객체에 대한 포인터 만 저장하므로 세트 후에 gridViewPointer에서 수행하는 모든 동작은 GridView1을 직접 제어합니다.