C# 方法接收和返回泛型类型-如何执行?

C# 方法接收和返回泛型类型-如何执行?,c#,generics,C#,Generics,我有一个类框架,其中包含一些示例。我想要一个方法AsType,将这些示例转换为另一个数字类型 我尝试了这个方法,但没有成功,因为找不到类型或命名空间“TargetType”。此外,我有点不明白为什么它不起作用,我怎么能想出正确的方法来思考它,并使它正确 public class Frame<T> { public T[] Samples { get; protected set; } public Frame(IEnumerable<T> Samples

我有一个类
框架
,其中包含一些示例。我想要一个方法
AsType
,将这些示例转换为另一个数字类型

我尝试了这个方法,但没有成功,因为找不到类型或命名空间“TargetType”。此外,我有点不明白为什么它不起作用,我怎么能想出正确的方法来思考它,并使它正确

public class Frame<T>
{
    public T[] Samples { get; protected set; }

    public Frame(IEnumerable<T> Samples)
    {
        Samples = Samples.ToArray();
    }

    public Frame<TOut> AsType(Type TOut)
    {
        // line below doesn't work
        return new Frame<TOut>(Samples.Select(s => (TOut)s));
    }
}
公共类框架
{
公共T[]样本{get;protected set;}
公共框架(IEnumerable示例)
{
Samples=Samples.ToArray();
}
公共框架AsType(类型TOut)
{
//下面的行不起作用
返回新帧(Samples.Select(s=>(TOut)s));
}
}
此操作不需要方法参数,但需要通用参数:

此操作不需要方法参数,但需要泛型参数:

“或者什么”不能用谷歌搜索,对吗?研究一下实际的异常消息,你会发现你的方法定义中缺少了一个泛型类型参数:
AsType()
“或者一些”不能用谷歌搜索的东西,对吗?研究实际的异常消息,您会发现在方法定义中缺少一个泛型类型参数:
AsType()
。我删除了第二行“下面的行不起作用”,因为它显然不起作用。谢谢,现在我明白了!我删除了第二行“下面的行不起作用”,因为它显然不起作用。谢谢,现在我明白了!
                        //don't miss this parameter!
public Frame<TOut> AsType<TOut>()
{
    return new Frame<TOut>(Samples.Select(s => (TOut)s));
}
public Frame<TOut> AsType<TOut>()
{
    return new Frame<TOut>(Samples.Cast<TOut>());
}