C# 使用泛型类型BaseUser时出错需要1个参数
我有一个接口C# 使用泛型类型BaseUser时出错需要1个参数,c#,generics,interface,abstract-class,C#,Generics,Interface,Abstract Class,我有一个接口 public interface IIdentity<T> { T GetUser(); } 我在使用泛型类型BaseUser requires 1参数时遇到一个错误,我在这里做什么,基本上我希望我的用户从基类继承共享属性,我认为这样做,并从基类实现泛型方法,因为我将拥有不同类型的用户JWT/Windows等,我需要抽象掉getUsers方法,希望这是有意义的?它应该像,参考: 或 什么时候创建Instance var jwtUser =new JwtUse
public interface IIdentity<T>
{
T GetUser();
}
我在使用泛型类型BaseUser requires 1参数时遇到一个错误,我在这里做什么,基本上我希望我的用户从基类继承共享属性,我认为这样做,并从基类实现泛型方法,因为我将拥有不同类型的用户JWT/Windows等,我需要抽象掉getUsers方法,希望这是有意义的?它应该像,参考: 或 什么时候创建Instance
var jwtUser =new JwtUser<User> ();
或
最后,您必须将T模板的值指定为其泛型
例如,若使用列表,则必须使用适当的类型初始化,如if interger List然后List intlist=new List 您必须找到实现这一点的方法,这两种方法都需要在BaseUser中设置泛型 您可以公开通用的:
public class JwtUser<T> : BaseUser<T>
{
public string Sub { get; set; }
}
或者,只需设置泛型:
public class JwtUser : BaseUser<JwtUser>
{
public string Sub { get; set; }
}
为什么需要接口和基类?接口不知道什么类型的用户?我没有一个用户类,JWTUser需要从baseUser继承并组成一个整体user@saj-但你必须传递T的值,@saj-它解决了你的问题,但我建议再次通过泛型来获得更清晰的图像。。。
public class JwtUser<T> : BaseUser<T>
{
public string Sub { get; set; }
}
var jwtUser =new JwtUser<User> ();
class JwtUser: BaseUser<JwtUser> { }
public class JwtUser<T> : BaseUser<T>
{
public string Sub { get; set; }
}
public class JwtUser : BaseUser<JwtUser>
{
public string Sub { get; set; }
}