Обрабатывает ли обобщенная функция неявно типы значений для объектов при проверке на нулевое значение?
Например, следующий код демонстрирует мою точку зрения:
class Program
{
static void Main(string[] args)
{
int i = 0;
IsNull(i); // Works fine
string s = null;
IsNull(s); // Blows up
}
static void IsNull(T obj)
{
if (obj == null)
throw new NullReferenceException();
}
}
Также следующий код:
int i = 0;
bool b = i == null; // Always false
Происходит ли неявное приведение объекта? такой что:
int i = 0;
bool b = (object)i == null;