我对C#很新,我无法将对象转换为List<T>.我一直收到错误"无法隐式类型转换Attachment到System.Collections.Generic.List<Attachment>.有很多关于我看过了类似的错误的职位,但我似乎无法找出什么我失踪.
我的核心对象如下:
public class Attachment
{
public Attachment() { }
...
}
Run Code Online (Sandbox Code Playgroud)
它在另一个类的构造函数中被调用,如下所示:
public class MyClass
{
...
public List<Attachment> attachments { get; set; };
...
public MyClass(JObject jobj)
{
...
//Attachments
if (jobj["attachments"] != null)
{
attachments = (Attachment)jobj.Value<Attachment>("attachments");
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误发生在代码的最后一行,我正在尝试将我的Attachment对象强制转换为List<attachments>.我理解这条消息的内容,但我尝试过的一切都行不通.
你正在设置List<T>一个T.
attachments = (Attachment)jobj.Value<Attachment>("attachments");
Run Code Online (Sandbox Code Playgroud)
相反,您可能想要添加它.但是不要忘记首先实例化列表.
attachments = new List<Attachment>();
attachments.Add((Attachment)jobj.Value<Attachment>("attachments"));
Run Code Online (Sandbox Code Playgroud)
以不涉及泛型的术语来考虑它.说我有一个int x,我把它设置为string常数.
int x = "test";
Run Code Online (Sandbox Code Playgroud)
那是什么意思?这些是完全不同的类型.这有点像你要求编译器执行的转换.左侧的类型必须是(右侧的类型的多态父级).
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |