具有泛型返回的泛型方法的格式

时间:2012-05-12 07:54:07

标签: c# .net generics

我想实现一个返回其操作类型值的函数。我该如何做到这一点?

示例1:

static T Swap<T>(ref T lhs, ref T rhs)
{
    T temp;
    temp = lhs;
    lhs = rhs;
    rhs = temp;

    return <T> temp;
}

示例2:

public override T GetRandom()
{
    return  (T)_random.Next(_min, _max);
}

2 个答案:

答案 0 :(得分:7)

由于return-type和variable-type都已经T,这只是:

return temp;

或者,施放(但这里不需要):

return (T) temp;

实际上,IMO“交换”应该void返回!

答案 1 :(得分:0)

使这个通用没有意义:

public override T GetRandom()
{
     return  (T)_random.Next(_min, _max);
}

随机“T”是什么意思?假设T是“Person”类型,返回随机Person是什么意思?使用通用GetRandom方法似乎没有任何逻辑。

如果你想要一个整数,只需将int指定为返回类型。

public override int GetRandom()
{
    return  _random.Next(_min, _max); 
}