Shantanu Gupta
Shantanu Gupta

Reputation: 21198

Using Generics to typecast object type to generic type

I am very new to generics and trying to implement it. How can i use it here.

   private T  returnValueFromGrid(int RowNo, int ColNo) 
        {
            return (T) dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value;
        }

I am trying to convert below value to generic type and then return it.

dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value

Here i need to know two things. How to do the above problem and how to use this in my code. Please provide some eg.

EDIT

It is giving me error Error The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?

Upvotes: 3

Views: 309

Answers (1)

EMP
EMP

Reputation: 62001

It's simply:

private T returnValueFromGrid<T>(int RowNo, int ColNo)
{
    return (T)dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value;
}

You use T in the same way as if it was a type name.

Having said that, if this is all you're doing then you're not really getting any benefit from generics, because either way the caller of your method has to specify the type. That is, with generics it looks like this:

var x = returnValueFromGrid<SomeType>(1, 2);

Without generics it would look like this:

var x = (SomeType)returnValueFromGrid(1, 2);

You're simply pushing the cast down into the method, but not really saving any work - either for the programmer or for the CPU.

Upvotes: 4

Related Questions