Tenho as seguintes aulas:
public interface IClass1
{
string Name { get; set; }
}
public class Class1 : IClass1
{
public string Name { get; set; }
}
public class Class2 : Class1
{
public string Description { get; set; }
}
Tenho um componente de barbear ClassComponent
com os seguintes parâmetros:
@code {
[Parameter]
public Class1 Model { get; set; }
[Parameter]
public EventCallback<Class1> ModelChanged { get; set; }
}
Então tenho 2 páginas. Página 1:
<ClassComponent @bind-Model="model" />
@code {
private Class1 model = new();
}
e página 2:
<ClassComponent @bind-Model="model" />
@code {
private Class2 model = new();
}
Tudo funciona bem em Page 1
. No entanto, não consigo usar a mesma lógica em Page 2
pois recebo o seguinte erro do compilador:
CS1662 : Não é possível converter o bloco de método anônimo para o tipo de delegado 'tipo de delegado' porque alguns dos tipos de retorno no bloco não são implicitamente conversíveis para o tipo de retorno de delegado
É possível implementar o acima de outra maneira que funcione?
Use genéricos com uma restrição:
https://learn.microsoft.com/en-us/aspnet/core/blazor/components/generic-type-support?view=aspnetcore-9.0