空检查

扩展方法是静态方法,其行为类似于实例方法。但是,与在 null 引用上调用实例方法时发生的情况不同,当使用 null 引用调用扩展方法时,它不会抛出 NullReferenceException 。这在某些情况下非常有用。

例如,请考虑以下静态类:

public static class StringExtensions
{
    public static string EmptyIfNull(this string text)
    {
        return text ?? String.Empty;
    }

    public static string NullIfEmpty(this string text)
    {
        return String.Empty == text ? null : text;
    }
}
string nullString = null;
string emptyString = nullString.EmptyIfNull();// will return ""
string anotherNullString = emptyString.NullIfEmpty(); // will return null

.NET 小提琴现场演示