A a = null;
a.SomeMethod();
могут не вызывать NullReferenceException, а отрабатывать и выполнять какой либо функционал или даже возвращать значения.
Как?
Методы-расширения:
public class A { }
public static class AExt {
public static void SomeMethod(this A a) {
Console.WriteLine("Invoked with "+(a==null?"null":a.ToString()));
}
}
Это конечно хорошо, но имхо это нарушает "читабельность" - лучше явно проверять и обрабатывать null-значения, чем прятать обработку в методы расширения.
Но факт остается факт - у переменной со значением null можно вызвать метод :) Можно спрашивать на собеседованиях чтоб оценить реакцию :)
No comments:
Post a Comment