編譯器錯誤 CS1922
集合初始設定式需要其類型 'type' 實作 System.Collections.IEnumerable。
若要搭配使用集合初始設定式與類型,類型必須實作 IEnumerable
。 如果您在想要使用物件初始設定式時不小心使用到集合初始設定式語法,則會發生這個錯誤。
如果類型不代表集合,請使用物件初始設定式語法,而非集合初始設定式語法。
如果類型代表集合,請先進行修改來實作
IEnumerable
,才能使用集合初始設定式來初始化該類型的物件。如果類型代表集合,而且您無法存取原始碼,則只要初始化其項目即可,方法是使用這些項目的類別建構函式或其他初始化方法。
下列程式碼會產生 CS1922:
// cs1922.cs
public class Test
{
public static void Main()
{
// Collection initializer.
var tc = new TestClass {1,"hello"} ; // CS1922
// Object initializer.
var tc2 = new TestClass { memberA = 1, memberB = "hello" }; // OK
}
}
public class TestClass
{
public int memberA { get; set; }
public string memberB { get; set; }
}