不可变列表不包含接受 0 个参数的构造函数



我正在尝试像常规列表一样初始化一个不可变列表,但它告诉我它不需要 0 个参数。如果我传递 1 个参数、2 个参数等,它会抛出相同的错误。

public static readonly ImmutableList<object[]> AddressTestCases = new ImmutableList<object[]>
{
new object[]{ "", false },
new object[]{ "testestest", true },
};

我在这里做错了什么?有没有办法在不使用.加?

Ok ImmutableList 有一个你应该使用的创建方法

public ImmutableList<int> ImmutableListCreate()
{
return ImmutableList.Create<int>(1, 2, 3, 4, 5);
}

要创建一个不可变列表,你必须使用在 ImmutableList 静态类上定义的静态工厂方法 Create((。

这意味着您将需要

public static readonly ImmutableList<object[]> AddressTestCases = 
ImmutableList.Create(new object[] { "", false }, new object[] { "testtest", true });

你使用的语法不是调用你认为的构造函数。它调用空构造函数,然后调用您提供的对象数组的后台调用.Add

您将需要使用其中一种构建器方法:

public static readonly ImmutableList<object[]> AddressTestCases =
new[] {
new object[]{ "", false }, 
new object[]{ "testestest", true }
}).ToImmutableList();

相关内容

最新更新