bei der Implementierung/Verwendung von Methoden, die Instanzen von Objekten zurückgeben oder damit arbeiten, was ist der eleganteste Ansatz zur Überprüfung der Funktionsparameter?Die beste Methode zum Überprüfen von Funktionsparametern: Auf Null prüfen oder versuchen/fangen
Methode aufzurufen:
someType GetSomething(object x)
{
if (x == null) {
return;
}
//
// Code...
//
}
oder besser:
someType GetSomething(object x)
{
if (x == null) {
throw new ArgumentNullException("x");
}
//
// Code...
//
}
Aufruf Methode:
void SomeOtherMethod()
{
someType myType = GetSomething(someObject);
if (someType == null) {
return;
}
}
oder besser:
void SomeOtherMethod()
{
try {
someType myType = GetSomething(someObject);
} catch (ArgumentNullException) {
}
}
Wenn Sie ähnliche Fragen durchgehen, ist der Grund, try/catch nicht zu verwenden, die Leistung. Aber IMHO sieht der Versuch-Fang einfach besser aus :).
Also, welcher Weg ist "eleganter"?
Funktionen, die Nicht-Null-Eingaben auswerten und Null für Null-Eingaben zurückgeben, sind oft ein nützliches Muster. In einigen Fällen mag das Null-Objektmuster schöner sein, aber es kann schwierig sein, es mit Generika zu implementieren. – supercat