列出自定义类型

Whi*_*ove 0 .net c# linq list

我想说我正在用简单的编码学习语言.

如果我创建一个对象ResourceTemplate作为

public class ResourceTemplate
{
    public string Name;
    public int Value;
}
Run Code Online (Sandbox Code Playgroud)

然后做了

List<ResourceTemplate> resource = new List<ResourceTemplate>();
Run Code Online (Sandbox Code Playgroud)

该资源将是一个具有结构的列表ResourceTemplate.如果是这样,为什么我不能使用 resource.Add("product", 500);?

编译器说它不能对ResourceTemplate函数进行重载.

Sal*_*ari 5

您应该创建该类的新实例:

resource.Add(new ResourceTemplate {Name = "product", Value = 500});
Run Code Online (Sandbox Code Playgroud)

或者像这样:

ResourceTemplate resourceTemplate = new ResourceTemplate
{
    Name = "product",
    Value = 500
};
resource.Add(resourceTemplate);
Run Code Online (Sandbox Code Playgroud)

但是,通过向您的类添加构造函数,如下所示:

public class ResourceTemplate
{
    public ResourceTemplate(string name, int value)
    {
         Name = name;
         Value = value;
    }
    public string Name;
    public int Value;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以:

resource.Add(new ResourceTemplate("product", 500 ));
Run Code Online (Sandbox Code Playgroud)

另外我建议您使用属性而不是公共字段:

public string Name { get; set; }
public int Value { get; set; }
Run Code Online (Sandbox Code Playgroud)