gpt4 book ai didi

c# - .Net接口(interface)继承编译

转载 作者:行者123 更新时间:2023-11-30 12:31:56 25 4
gpt4 key购买 nike

这是为什么:

public interface IServiceRecherche<T, U>
where T : IEntite
where U : ICritereRecherche
{
IList<T> Rechercher(U critere);
}

public interface IServiceRechercheUnite :
IServiceRecherche<IUnite, ICritereRechercheUnite>,

{}

不同于:

public interface IServiceRechercheUnite                             
{
IList<IUnite> Rechercher(ICritereRechercheUnite critere);
}

什么时候编译的?

使用第一个接口(interface)编译的应用程序无法识别第二个接口(interface)。我知道它们在代码中不一样,但最终在执行过程中为什么它们不一样?

最佳答案

从 CLR 的角度来看,这些是不同的类型,因为第一个是封闭泛型类型,继承自 IServiceRecherche<T, U> .

but in the end during execution why aren't they the same

原因是一样的,如以下情况:

public MyClass1
{
public int MyProperty { get; set; }
}

public MyClass2
{
public int MyProperty { get; set; }
}

尽管成员声明相似,但它们只是不同的类型声明。

CLR 不能这样想:“啊,MyClass1 和 MyClass2 是相同的。让我们将它们视为同一类型”。

关于c# - .Net接口(interface)继承编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com