如何重用通用接口?

时间:2018-03-16 07:29:26

标签: c# generics asp.net-core aspnetboilerplate

我在ASP.NET Core上使用ASP.NET Boilerplate。 我有一些模特课。

public class AClass : FullAuditedEntity<int>
{

}

和下面的一个界面。

public interface ISomeInterface<T, TEntity> where T : BaseFileEntity where TEntity : class, IEntity<int>
{

}

现在如果我添加一个额外的模型类,如下所示。

public class BClass : FullAuditedEntity<string>
{

}

我必须为此更改定义另一个界面,如下所示。

public interface ISomeInterface<T, TEntity> where T : BaseFileEntity where TEntity : class, IEntity<string>
{

}

所以基本上它是重复的代码。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

是否可以像下面那样声明您的界面,以便将类型传递给IEntity

public interface ISomeInterface<T, TEntity, U> where T : BaseFileEntity where TEntity : class, IEntity<U>
{

}

答案 1 :(得分:0)

您可以将界面更改为:

val params: T = viewGroup
val par = viewGroup.layoutParams