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
只是返回类型-它恰好是稍后声明的类型参数。