>What if I passed the ds to the MyClass.MyMethod (without the Out parameter) and inside this method called adapter Fill() method with this dataset, would .NET fill the new instance of the dataset or the one created in the calling routine?There's no new instance if you don't create one! If all you do is Fill, then it's filling the passed in reference and you're good. Also, with DataSets, if you wanted to start with a "clean" DataSet, rather than creating the new one, you could just execute the .Clear() method.
MyMethod(DataSet ds)
{
Adapter.Fill(ds)
}