检查每一层对象是否存在

Red*_*ddy 4 c#

让我们考虑一个示例模型,如下所示。

class student
{
    public int ID { get; set; }
    public string Name { get; set; }
    public school SchoolName { get; set; }
}

class school
{
    public int ID { get; set; }
    public string Name { get; set; }
}

student student1 = new student();
Run Code Online (Sandbox Code Playgroud)

众所周知,我们访问学校名称如下。

Console.WriteLine(student1.SchoolName.Name);
Run Code Online (Sandbox Code Playgroud)

如果school未分配给 a student,则为student1.SchoolNamenull。所以上述Console.WriteLine()失败。

我最终if为所有这些元素写了一个声明,这是 a$$ 中的一个痛苦。我们是否有其他方法来处理这些情况?

Baa*_*ali 5

尝试这个:

Console.WriteLine(student1.SchoolName?.Name);
Run Code Online (Sandbox Code Playgroud)

如果 SchoolName 为 null,则不会评估 Name 属性。

  • 请注意,这是 C# 6.0 语法,OP 可能使用旧版本。 (3认同)