泛型:运行时

c#的泛型是运行时泛型,因此不支持:
public T New<T>() where T : IProduct
        {
            return new Product();
        }
编译器无法通过IProduct和Product进行对应。
来自群C#/WPF质量群 415335118 (DynamicBlue)
经过测试,泛型方法内部可以访问泛型实例的属性及方法,仅返回值无法识别约束。
T仅仅是占位符,在编译前没有意义,并不会和where发生关系,因此返回运行时识别的Product类型使错误的。
posted @ 2017-08-25 11:54  sunlyk  阅读(269)  评论(0编辑  收藏  举报