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