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>());
}