Wandelt eine generische Funktion beim Überprüfen auf Null implizit Werttypen in Objekte um?
Zum Beispiel demonstriert der folgende Code meine Gedankenrichtung:
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>(T obj)
{
if (obj == null)
throw new NullReferenceException();
}
}
Auch der folgende Code:
int i = 0;
bool b = i == null; // Always false
Gibt es eine implizite Objektbesetzung? so dass:
int i = 0;
bool b = (object)i == null;