小编kal*_*k0v的帖子

如何将泛型参数类型用于另一个泛型类?

对我来说,它看起来像编译器错误或一些奇怪的行为.编译器无法确定泛型类中的泛型参数类型

public interface IHamster
{
    int Some { get; set; }
}

public abstract class BaseHamster : IHamster
{
    public int Some { get; set; }
}

public class DerivedHamster : BaseHamster
{
}

class ApplyHitHamster<T> where T : IHamster   // <-- same constraint 
{
    void Zu()
    {
        BaseHamster hamster = null;
        var derived = new DerivedHamster();
        IHamster i = derived;

        var s = new TakeDamageHamster<T>(i); // <<<< Compilation Error on any variables(hamster,derived,i) WHY?????????
        var s2 = new TakeDamageHamster<IHamster>(i); …
Run Code Online (Sandbox Code Playgroud)

.net c# generics

4
推荐指数
1
解决办法
150
查看次数

标签 统计

.net ×1

c# ×1

generics ×1