MST

星途 面试题库

面试题:C#中null条件运算符与空合并运算符的基础应用

假设有一个类`Person`,包含属性`Name`(字符串类型)。请编写代码,使用null条件运算符和空合并运算符来获取`Person`实例的`Name`属性值,如果`Person`实例为`null`,则返回一个默认字符串'Unknown'。
41.3万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试

以下以C#代码为例:

class Person
{
    public string Name { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = null;
        string name = person?.Name?? "Unknown";
        Console.WriteLine(name);
    }
}

在上述代码中,首先定义了Person类包含Name属性。在Main方法中,声明了一个Person类型的变量person并初始化为null。然后使用null条件运算符?.检查person是否为null,如果不为null则获取Name属性值,若为null则返回null,之后使用空合并运算符??,当person?.Name返回null时,返回默认字符串"Unknown"

不同编程语言的实现方式略有差异,比如在Java中,虽然没有直接类似C#这样简洁的写法,但可以通过Optional类来实现类似功能:

import java.util.Optional;

class Person {
    private String name;

    public String getName() {
        return name;
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = null;
        String name = Optional.ofNullable(person)
                             .map(Person::getName)
                             .orElse("Unknown");
        System.out.println(name);
    }
}

在Java代码中,使用Optional.ofNullable方法来包装可能为nullperson对象,然后通过map方法获取name,如果personnull,则使用orElse方法返回默认值"Unknown"