小编Mar*_*tex的帖子

如何在c#中创建这个奇怪的情况下的通用列表

在我的程序中,我有一个A扩展的类B,C以及更多的类.我有一个方法GetInstance()返回BC(或其中一个其他孩子)的实例,但我不知道哪一个,所以方法的返回类型是A.

在方法中CreateGenericList(),我有一个v类型的变量,A实际上是一个B,一个C或另一个子类型,我想创建一个正确类型的通用列表,即List<B>如果v是a BList<C>if v是a C,...

目前我通过使用反射来实现它,但是这非常慢.我想知道是否有另一种方法可以做到这一点,它不使用反射.

以下是我的问题代码示例:

class A { }  
class B : A { }  
class C : A { }
// More childs of A.


class Program
{
    static A GetInstance()
    {
        // returns an instance of B or C
    }

    static void CreateGenericList() …
Run Code Online (Sandbox Code Playgroud)

c# generics reflection types

2
推荐指数
1
解决办法
351
查看次数

标签 统计

c# ×1

generics ×1

reflection ×1

types ×1