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