Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Generics to typecast object type to generic type

Tags:

c#

.net

generics

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?

like image 918
Shantanu Gupta Avatar asked Feb 24 '26 12:02

Shantanu Gupta


1 Answers

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.

like image 155
EMP Avatar answered Feb 27 '26 02:02

EMP