Skip to content

一些建议 #2

@ArsiIksait

Description

@ArsiIksait
  • 删除DelayUs()方法,使用Thread.Sleep(800);
  • 将 null 字面量或可能为 null 的值转换为非 null 类型。遇到这种情况时需要判断可能潜在的null问题,增强程序健壮性
    JArray? jArry = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(filePath + "/usercache.json"));
    if (jArry == null) { Console.WriteLine("读取usercache.json时出错"); }
  • 解引用可能出现空引用。usercacheData.Add([jArry[i]["name"].ToString(), jArry[i]["uuid"].ToString()]); 如果遇到读取不到的时候,程序会崩溃,可以用?.来表示如果前面的变量为null,就不执行后面的方法,??是当前面的变量为null时就赋值后面的变量或方法返回的值 usercacheData.Add([jArry[i]["name"]?.ToString() ?? string.Empty, jArry[i]["uuid"]?.ToString() ?? string.Empty]);
  • 不要使用(JArray)JsonConvert.DeserializeObject(File.ReadAllText(filePath + "/usercache.json"));,改用Json序列化和反序列化,就是读取json然后把它反序列化成对应的类,或者把类序列化成Json文本
    `
    // 使用强类型反序列化
    public class UserCache
    {
    [JsonProperty("name")]
    public string Name { get; set; } = string.Empty;
    [JsonProperty("uuid")]
    public string UUID { get; set; } = string.Empty;
    [JsonProperty("expiresOn")]
    public string ExpiresOn { get; set; } = string.Empty;
    }

//反序列化
var users = JsonConvert.DeserializeObject<List>(File.ReadAllText(usercachePath));
//序列化
string jsonString = JsonConvert.SerializeObject(users);
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions