【发布时间】:2015-03-09 10:45:46
【问题描述】:
我有一个带有通用参数的静态类,声明如下:
public static partial class CMSLib<TUser> where TUser : CMSLib<TUser>.UserBase
{
public abstract class UserBase : OrmObject<TUser>
{
public UInt32 Id { get; set; }
public string Login { get; set; }
/* etc. */
}
}
OrmObject 声明如下:
public abstract class OrmObject<T> where T: class
{
static OrmObject()
{
using (var db = Db.Open())
db.CreateTable<T>();
}
public static T Single(Expression<Func<T, bool>> where) { ... }
}
当我尝试从泛型参数调用方法 Single 时:
public static partial class CMSLib<TUser> where TUser : CMSLib<TUser>.UserBase
{
public static TUser SomeFunction()
{
var user = TUser.Single(...); // Here error
...
}
}
我收到错误'TUser' 是一个'类型参数',在给定的上下文中无效
在这种情况下我如何调用 TUser.Single 方法(必须调用OrmObject 中的静态构造函数)?
【问题讨论】:
标签: c# generics methods static