简体   繁体   English

投射我的课堂<T>到我的课堂<dynamic>

[英]Cast MyClass<T> to MyClass<dynamic>

The follow code does not compile:以下代码无法编译:

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) { }
    }
}

However, I believe it makes sense logically (please let me know if I'm mistaken).但是,我认为这在逻辑上是有道理的(如果我弄错了,请告诉我)。 Presumably it is useful, for I can call DoSomething without knowing the type parameter.大概它很有用,因为我可以在不知道类型参数的情况下调用DoSomething How can I accomplish the addition of myClass to the list?如何完成将myClass到列表中?

Instead of using a list of MyClass<dynamic> just use a List of dynamic :而不是使用MyClass<dynamic>的列表,只需使用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() { }
    }

为什么我不能从列表中投射<myclass>列出<object> ?<div id="text_translate"><p> 我有一个对象列表,它们属于我的QuoteHeader类型,我想将此列表作为对象列表传递给能够接受List&lt;object&gt;的方法。</p><p> 我的代码行显示...</p><pre> Tools.MyMethod((List&lt;object&gt;)MyListOfQuoteHeaders);</pre><p> 但是我在设计时收到以下错误...</p><pre> Cannot convert type 'System.Collections.Generic.List&lt;MyNameSpace.QuoteHeader&gt;' to 'System.Collections.Generic.List&lt;object&gt;'</pre><p> 我需要对我的 class 做任何事情来允许这样做吗? 我认为所有类都继承自 object 所以我不明白为什么这不起作用?</p></div></object></myclass> - Why can't I cast from a List<MyClass> to List<object>?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 演员表 <string> 到MyClass <object> 运行时失败 - Cast MyClass<string> to MyClass<object> fails in runtime 当T是IEnumerable <U>时,myClass <T>的隐式强制转换失败 - Implicit cast fails for myClass<T> when T is IEnumerable<U> 铸造MyClass <T> 到MyClass <object> C# - Casting MyClass<T> to MyClass<object> C# 为什么我不能从列表中投射<myclass>列出<object> ?<div id="text_translate"><p> 我有一个对象列表,它们属于我的QuoteHeader类型,我想将此列表作为对象列表传递给能够接受List&lt;object&gt;的方法。</p><p> 我的代码行显示...</p><pre> Tools.MyMethod((List&lt;object&gt;)MyListOfQuoteHeaders);</pre><p> 但是我在设计时收到以下错误...</p><pre> Cannot convert type 'System.Collections.Generic.List&lt;MyNameSpace.QuoteHeader&gt;' to 'System.Collections.Generic.List&lt;object&gt;'</pre><p> 我需要对我的 class 做任何事情来允许这样做吗? 我认为所有类都继承自 object 所以我不明白为什么这不起作用?</p></div></object></myclass> - Why can't I cast from a List<MyClass> to List<object>? 无法将List`1 [MyClass]&#39;强制转换为List`1 [MyClass_Accessor]&#39;类型? - Cannot cast List`1[MyClass]' to type List`1[MyClass_Accessor]'? 无法将“ MyClass”转换为“ MyClass” - Cannot Convert 'MyClass' to 'MyClass' 演员表 <object> 列表 <myclass> C# - Cast List<object> to List<myclass> c# 带列表的用户控件 <myclass> 无法识别myclass中的公共财产 - Usercontrol with List<myclass> doesn't recognize public properties in myclass 如何迭代List <T> 其中T:MyClass - How to iterate List<T> where T: MyClass 转换MyClass <SomeType> 到MyClass <SomeOtherType> - Convert MyClass<SomeType> to MyClass<SomeOtherType>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM