Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用泛型将对象类型强制转换为泛型类型_C#_.net_Generics - Fatal编程技术网

C# 使用泛型将对象类型强制转换为泛型类型

C# 使用泛型将对象类型强制转换为泛型类型,c#,.net,generics,C#,.net,Generics,我对泛型非常陌生,并尝试实现它。我在这里怎么用 private T returnValueFromGrid(int RowNo, int ColNo) { return (T) dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value; } 我正在尝试将下面的值转换为泛型类型,然后返回它 dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value 在

我对泛型非常陌生,并尝试实现它。我在这里怎么用

   private T  returnValueFromGrid(int RowNo, int ColNo) 
        {
            return (T) dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value;
        }
我正在尝试将下面的值转换为泛型类型,然后返回它

dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value
在这里,我需要知道两件事。如何解决上述问题以及如何在我的代码中使用它。 请提供一些例如

编辑

它给了我错误找不到类型或命名空间名称“T”(您是否缺少using指令或程序集引用?它只是:

private T returnValueFromGrid<T>(int RowNo, int ColNo)
{
    return (T)dgvCurrencyMaster.Rows[RowNo].Cells[ColNo].Value;
}
如果没有泛型,它将如下所示:

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

您只是简单地将强制转换推到方法中,但并没有真正节省任何工作—无论是对程序员还是CPU。

您需要将
添加到方法声明中—请参阅我的更新答案(或Jon的)@Evgeny:Thx,这个问题解决了。你能描述一下为什么在函数的两边都使用了T。它们在做什么等。如果你能提供一些关于相同的参考,那将非常有帮助。右边的
说“这个函数有一个名为T的类型参数”.左侧的
T
只是返回类型-它恰好是稍后声明的类型参数。