现在,我使用此命令初始化对象列表,它工作正常。
public class RelatedBlog
{
public string trekid { get; set; }
public string imagepath { get; set; }
public RelatedBlog(string trekid, string imagepath)
{
this.trekid = trekid;
this.imagepath = imagepath;
}
}
trek.relatedblog = new List<RelatedBlog>
{
new RelatedBlog("trekid", "../Images/image.jpg"),
};
然而,最近我决定不使用单个字符串作为第一个属性,我希望有一个包含多个字符串的数组 - 大小最多为4(但它也可以修复,我可以在初始化期间输入空值) 。这是我正在使用的代码,但它不起作用,它期望更多“(”当我调用构造函数时。
public class RelatedBlog
{
public string[] trekid { get; set; }
public string imagepath { get; set; }
public RelatedBlog(string[] trekid, string imagepath)
{
this.trekid = trekid;
this.imagepath = imagepath;
}
}
trek.relatedblog = new List<RelatedBlog>
{
new RelatedBlog({"string1", "string2"}, "../Images/image.jpg"),
};
有人可以告诉我我在哪里犯了错误,以及如何正确地初始化这个列表。非常感谢
答案 0 :(得分:2)
使用:
trek.relatedblog = new List<RelatedBlog>
{
new RelatedBlog(new[] {"string1", "string2"}, "../Images/image.jpg")
};
您正在使用implicitly typed array,编译器可以检测数组内部的类型,但您必须通知它您正在传递数组:
var arr1 = new[] { "hello", "world" };
等于
var arr2 = new string [] { "hello", "world" };