目前在C#基礎上做一些功課。我在這條線得到一個空指針,不能弄清楚發生了什麼caussing它:C#初始化程序空指針
List<Project> projecten = new List<Project>{
new Project {
name = "project a",
deelnemers =
{
new Person { name = "Ed" },
new Person { name = "Mike" },
}
},
new Project {
name = "project b",
deelnemers = {
new Person {name = "Max" },
new Person {name = "Peter" },
}
}
};
人員和項目類正確定義,我認爲:
public class Project
{
public string name { get; set; }
public List<Person> deelnemers {get; set;}
}
public class Person
{
public string name { set; get; }
}
這也可能是一些愚蠢但我沒看到它。
完整的文件是這樣的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// Maak een collection mbv initializers van minimaal 3 projecten met meerdere projectleden
List<Project> projecten = new List<Project>{
new Project {
name = "project a",
deelnemers =
{
new Person { name = "Xanvier" },
new Person { name = "Jantje" },
}
},
new Project {
name = "project b",
deelnemers = {
new Person {name = "Pietje" },
new Person {name = "Keesje" },
}
}
};
List<Int16> p = new List<Int16> { 1,2,3 };
//var projectje = new Project{ name = "project a" };
}
}
public class Project
{
public string name { get; set; }
public List<Person> deelnemers {get; set;}
}
public class Person
{
public string name { get; set; }
}
}
我不認爲這個錯誤是你認爲的錯誤 - 你能分享一個完整的,可運行的(但是最小的)例子來證明這個問題嗎? –
@CodeCaster,這是它注意的行(第一個代碼塊是一行) 你能澄清爲什麼它不編譯? – Ravenix
重複問題不應該被標記爲這樣。 OP知道NullReferenceException是什麼。 'deelnemers = {新人...} ** **將編譯。問題是,它不會初始化您的列表。它只會調用「添加」。你需要說'deelnamers =新列表 {...}' –