空检查
扩展方法是静态方法,其行为类似于实例方法。但是,与在 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