Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让一个C#类在其构造函数中实例化另一个类?_C# - Fatal编程技术网

如何让一个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
}