如何让一个C#类在其构造函数中实例化另一个类?
我创建了以下内容:如何让一个C#类在其构造函数中实例化另一个类?,c#,C#,我创建了以下内容: public class HttpStatusErrors { public HttpStatusErrors() { this.Details = new List<HttpStatusErrorDetails>(); } public string Header { set; get; } public IList<HttpStatusErrorDetails> Details { set;
public class HttpStatusErrors
{
public HttpStatusErrors()
{
this.Details = new List<HttpStatusErrorDetails>();
}
public string Header { set; get; }
public IList<HttpStatusErrorDetails> Details { set; get; }
}
public class HttpStatusErrorDetails
{
public HttpStatusErrorDetails()
{
this.Errors = new List<string>();
}
public string Error { set; get; }
public IList<string> Errors { set; get; }
}
Ide将msg.Details识别为有效,但当我尝试编写第二行时,我得到:
Error 3 'System.Collections.Generic.IList<TestDb.Models.Http.HttpStatusErrorDetails>'
does not contain a definition for 'Error' and no extension method 'Error' accepting a first
argument of type 'System.Collections.Generic.IList<TestDb.Models.Http.HttpStatusErrorDetails>'
could be found (are you missing a using directive or an assembly reference?)
C:\K\ST136 Aug 16\WebUx\Controllers\ProblemController.cs 121 33 WebUx
错误3“System.Collections.Generic.IList”
不包含“Error”的定义,并且没有接受第一个错误的扩展方法“Error”
类型为“System.Collections.Generic.IList”的参数
可以找到(是否缺少using指令或程序集引用?)
C:\K\ST136 Aug 16\WebUx\Controllers\ProblemController.cs 121 33 WebUx
我做错什么了吗?我认为我的设置方式是在创建第一个类时创建新列表。
msg.Details
返回一个List
对象<代码>列表没有错误
属性。您需要访问列表中的特定元素,只有这样,您才能拥有Errors
属性
例如:
msg.Details[0].Error
在代码中,在尝试访问元素之前,您可能希望确保
msg.Details
包含元素,或者最好在foreach
循环中对元素进行迭代。Details是一个集合。属性Error
属于集合详细信息中的项目。集合详细信息上没有属性错误
,您要转到详细信息
,这是一个IList
如果你想浏览列表中的项目,你需要浏览一下
比如说
msg.Details[number].Errors
或
您正在尝试将单个变量的值分配给列表。这是不可能的。谁是这一系列的投票人?@Jason不知道,尤其是看起来这是正确的答案。但是,在访问元素之前,可能应该检查
详细信息
是否为空。@Jason我猜有人不理解问题/答案。顺便说一句,OP尝试访问错误
而不是错误
属性,两者都存在;)
msg.Details[number].Errors
foreach(HttpStatusErrorDetails err in msg.Details)
{
err.Errors
}