Overloading Update method

  • Thread starter Thread starter Aaron Ackerman
  • Start date Start date
A

Aaron Ackerman

I want to overload a userdefined method named update so that I pass in
different typed datasets and through a case statement it would then update
using the appropriate dataadapter. Is this possible and if so how would the
check go to look for the particular typed dataset? Also how do I define the
method?
 
Aaron Ackerman said:
I want to overload a userdefined method named update so that I pass in
different typed datasets and through a case statement it would then update
using the appropriate dataadapter. Is this possible and if so how would the
check go to look for the particular typed dataset? Also how do I define the
method?
You wouldn't need a case stateement AND overloads. One or the other.

The thing to remember is that strongly typed datasets are subtypes of
DataSet, and so can be passed into any method that acceptes a DataSet. And
the compiler will always pick the most specific overload based on the
declared type being passed into the method.



So either define a single update, and test the type inside:

Public sub Update(ds as DataSet)

if typeof(ds) is myTypedDataSet1 then
'special logic for myTypedDataSet1
elseif typeof(ds) is myTypedDataSet2 then
'special logic for myTypedDataSet1
else
'generic dataset update code
end if

end sub

Or define multiple overloads.

Public sub Update(ds as DataSet)
'generic dataset update code
end sub

Public sub Update(ds as MyDataSet1)
'special logic for myTypedDataSet1
end sub

Public sub Update(ds as MyDataSet2)
'special logic for myTypedDataSet2
end sub

David
 
THANKS!!!

David Browne said:
You wouldn't need a case stateement AND overloads. One or the other.

The thing to remember is that strongly typed datasets are subtypes of
DataSet, and so can be passed into any method that acceptes a DataSet. And
the compiler will always pick the most specific overload based on the
declared type being passed into the method.



So either define a single update, and test the type inside:

Public sub Update(ds as DataSet)

if typeof(ds) is myTypedDataSet1 then
'special logic for myTypedDataSet1
elseif typeof(ds) is myTypedDataSet2 then
'special logic for myTypedDataSet1
else
'generic dataset update code
end if

end sub

Or define multiple overloads.

Public sub Update(ds as DataSet)
'generic dataset update code
end sub

Public sub Update(ds as MyDataSet1)
'special logic for myTypedDataSet1
end sub

Public sub Update(ds as MyDataSet2)
'special logic for myTypedDataSet2
end sub

David
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top