Ich habe folgende Erweiterungsmethode:Kann diese Erweiterungsmethode umgestaltet werden?
public static void ThrowIfArgumentIsNull<T>(this T value, string argument)
where T : class
{
if (value == null)
{
throw new ArgumentNullException(argument);
}
}
und dies ist ein Beispiel für die Verwendung ....
// Note: I've poorly named the argument, on purpose, for this question.
public void Save(Category qwerty)
{
qwerty.ThrowIfArgumentIsNull("qwerty");
....
}
arbeitet zu 100% in Ordnung.
Aber ich mag nicht, wie ich den Namen der Variablen bereitstellen muss, nur um meine Ausnahmebedingung zu helfen.
ich mich gefragt, ob es möglich ist, die Erweiterung Methode Refactoring, so könnte es so ...
qwerty.ThrowIfArgumentIsNull();
und automatisch herausfindet aufgerufen werden, dass der Name der Variablen ‚QWERTY‘ und deshalb verwendet dies als Wert für die ArgumentNullException.
Möglich? Ich nehme an, Reflexion könnte das tun?
siehe auch http://stackoverflow.com/questions/869610/c-resolving-a-parameter-name-at-runtime/869629#869629 –
Überprüfen Sie http://msmvps.com/blogs/jon_skeet/archive/ 2009/12/09/quot-magic-quot-null-argument-testing.aspx - gebloggt :) –
Ich denke, das ist eine sehr schwierige Lösung für ein sehr einfaches Problem ... Wenn Sie Visual Studio verwenden, können Sie Verwenden Sie Code-Snippets, um dies sehr einfach zu machen;) –