Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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#,当我运行这段代码时,当我尝试向tagCollection添加标记时,会出现一个空引用异常错误。我很高兴这是一个关于我如何声明tagCollection的问题,但我不确定我错在哪里 这两个类的设置使我能够在收集完数据后将集合序列化回JSON文件 class TagCollection { [JsonProperty("tags")] public List<Tag> Tags { get; set; } } public class Tag { [JsonP

当我运行这段代码时,当我尝试向tagCollection添加标记时,会出现一个空引用异常错误。我很高兴这是一个关于我如何声明tagCollection的问题,但我不确定我错在哪里

这两个类的设置使我能够在收集完数据后将集合序列化回JSON文件

 class TagCollection
{
    [JsonProperty("tags")]
    public List<Tag> Tags { get; set; }
}

public class Tag
{
    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }

    [JsonProperty("value")]
    public string Value { get; set; }
}

private TagCollection tagCollection;  

private void createCollection(){

    tagCollection.Tags.Add(
        new Tag { Name = "Test", Id = "tag1", Value = "145" }
    );

}
类标记集合
{
[JsonProperty(“标记”)]
公共列表标记{get;set;}
}
公共类标签
{
[JsonProperty(“名称”)]
公共字符串名称{get;set;}
[JsonProperty(“id”)]
公共字符串Id{get;set;}
[JsonProperty(“价值”)]
公共字符串值{get;set;}
}
私人标记收集标记收集;
私有void createCollection(){
tagCollection.Tags.Add(
新标记{Name=“Test”,Id=“tag1”,Value=“145”}
);
}
更改此选项:

private TagCollection tagCollection;
为此:

private TagCollection tagCollection = new TagCollection();
你只是忘了给新的收藏品打电话

更新:您还需要更改标签声明(归功于user@John):

公共列表标记{get;set;}=new List();

OP将在
标记上获得错误。现在也添加
。引用类型不会在C#中自动实例化
private TagCollection TagCollection
public List标记{get;set;}
都不引用任何内容,直到您为它们赋值(即新实例)。从副本上看。
public List<Tag> Tags { get; set; } = new List<Tag>();