namespace Console_Serep
{
class Program
{
static void Main()
{
ReadedReport json = File.Exists(Directory.GetCurrentDirectory()) ? JsonConvert.DeserializeObject<ReadedReport>(File.ReadAllText(Directory.GetCurrentDirectory())) : new ReadedReport();
while (true)
{
switch (Console.ReadLine())
{
case "/rep":
Console.WriteLine("Введите отчет в формате 00 00 00:00 00 00");
string rep = Console.ReadLine();
int id = json.Items == null ? 0 : json.Items.Length;
json.Items[id] = new Converter(rep).Report;
File.WriteAllText(Directory.GetCurrentDirectory(), JsonConvert.SerializeObject(json));
break;
default:
Console.WriteLine("Такой команды не предусмотренно, попробуйте ввести другую или проверить наличие опечаток");
break;
}
}
}
}
class ReadedReport
{
public Report[] Items { get; set; }
}
}
System.NullReferenceException: "Object reference not set to an instance of an object."
- 此错误发生在写入文件的行。
json.Items[id] 数组元素没有被赋值对象的值,数组的数据类型和被赋值的对象是一样的。请告诉我出了什么问题,我该如何做不同的事情。
数组具有固定数量的元素,在创建数组时设置,例如
new Report[4]
. 您不能动态地将元素添加到数组中。使用列表而不是数组。
然后代码将如下所示:
更改此属性的类型不应影响 JSON 序列化的工作。
请务必阅读以下内容:什么是 NullReferenceException,以及如何修复代码?