【发布时间】:2014-04-04 15:28:04
【问题描述】:
我对泛型有一个奇怪的问题。我收到以下编译错误:
最好的重载方法匹配有一些无效参数
参数“1”:无法从“EntityBase”转换为“T”
错误在EntityWrapper.DoSomethingElse,见下:
public abstract class EntityBase
{
public static bool DoSomething<T>(T entity, string someArg) where T : EntityBase
{
// implementation doesn't matter
return true;
}
}
public class EntityWrapper<T> where T : EntityBase
{
private EntityBase _entity;
public void DoSomethingElse()
{
EntityBase.DoSomething<T>(_entity, "some arg"); // <--- error here ---
}
}
我有这个代码的 VB.NET 版本,可以很好地编译和执行,所以我希望它可以在 C# 中工作。
我在这里错过了什么?
最后,虽然没关系,但这是VS2008,.NET 3.5。
【问题讨论】:
-
您的 VB.NET 版本是否启用了 Option Strict?
-
我认为是,这是我用于其他项目的默认设置。但现在我开始怀疑......
标签: c# .net vb.net generics compiler-errors