C# 铸造MyClass<;T>;给我的班级<;动态>;

C# 铸造MyClass<;T>;给我的班级<;动态>;,c#,generics,dynamic,casting,C#,Generics,Dynamic,Casting,以下代码未编译: public class Test { public void Run() { List<MyClass<dynamic>> listOfMyClasses = new List<MyClass<dynamic>>(); MyClass<dynamic> myClass = new MyClass<int>(); // Error here

以下代码未编译:

public class Test
{
    public void Run()
    {
        List<MyClass<dynamic>> listOfMyClasses = new List<MyClass<dynamic>>();

        MyClass<dynamic> myClass = new MyClass<int>(); // Error here

        listOfMyClasses.Add(myClass);
    }

    public class MyClass<T>
    {
        public void DoSomething() { }
        public void DoSomethingSpecial<T>(T t) { }
    }
}
公共类测试
{
公开募捐
{
List listOfMyClasses=新列表();
MyClass MyClass=新建MyClass();//此处出错
添加(myClass);
}
公共类MyClass
{
公共void DoSomething(){}
公共无效DoSomethingSpecial(T){}
}
}

然而,我相信这在逻辑上是有道理的(如果我错了,请告诉我)。它可能很有用,因为我可以调用
DoSomething
,而不知道类型参数。如何将
myClass
添加到列表中?

不要使用
myClass
列表,只需使用
dynamic
列表即可:

    public void Run()
    {
        List<dynamic> listOfMyClasses = new List<dynamic>();

        dynamic myClass = new MyClass<int>();

        listOfMyClasses.Add(myClass);
    }

    public class MyClass<T>
    {
        public void DoSomething() { }
    }
public void Run()
{
List listOfMyClasses=新列表();
动态myClass=新myClass();
添加(myClass);
}
公共类MyClass
{
公共void DoSomething(){}
}

如果
MyClass
实际上没有使用泛型参数,请删除泛型参数。这是一个浓缩的示例。。。显然,我可能错了,但我相信泛型需要特定的类型,不能是动态的,或者更确切地说ambiguous@Edward
dynamic
是一个非常有效的泛型类型参数。@该参数非常简洁,我们几乎不知道您真正想做什么。显然,解决问题的方法通常取决于细节。所以,为自己保留所有信息是以自我为中心的。谢谢。我意识到这是可以做到的,但这并不能回答问题。@TheTuthinnang,问题是什么?混合泛型和动力学的目的是什么?很明显,你所尝试的是行不通的,但是由于你不清楚你真正想做什么,我们所做的任何回答都将是无用的,因为这个问题处于当前的不完整状态。你希望我们能帮助你,但却很少提供你想要实现的目标的信息。这个问题相当具体,我实际上希望那些不喜欢这个问题的人继续前进。同样,问题是如何将
myClass
添加到
listofCyclasses
(当然使用我的定义)。如果这不能以任何方式实现,那么请随意添加这一点作为答案。