首页 > 解决方案 > 类型推断的问题

问题描述

我有以下通用方法

private static void ConfigureUpdateEntity<TUpdateEntity, TUpdateObject>(EntityTypeBuilder<TUpdateEntity> builder)
    where TUpdateEntity : UpdateEntity<TUpdateObject>
    where TUpdateObject : new()
{
    ConfigureBaseEntity(builder);
    
    [...]
}

当试图这样称呼它时

private static void ConfigureAdresseUpdateEntity(EntityTypeBuilder<UpdateEntity<AdresseUpdateObject>> builder)
{
    ConfigureUpdateEntity(builder);
    
    [...]
}

我得到这个编译器错误:

错误 CS0411
无法从用法中推断方法“SaiContext.ConfigureUpdateEntity<TUpdateEntity, TUpdateObject>(EntityTypeBuilder)”的类型参数。尝试明确指定类型参数。

更新实体:

public class UpdateEntity<TUpdateObject> : BaseEntity
    where TUpdateObject : new()
{
    [...]
}

请帮助我理解为什么无法推断用法,因为我不明白编译器缺少什么。

ConfigureUpdateEntity<UpdateEntity<AdresseUpdateObject>, AdresseUpdateObject>(builder);

会工作,但似乎没有必要。我错过了什么吗?

标签: c#genericstype-inference

解决方案


推荐阅读