Имам следния метод за разширение:
public static void ThrowIfArgumentIsNull<T>(this T value, string argument)
where T : class
{
if (value == null)
{
throw new ArgumentNullException(argument);
}
}
и това е пример за използването му....
// Note: I've poorly named the argument, on purpose, for this question.
public void Save(Category qwerty)
{
qwerty.ThrowIfArgumentIsNull("qwerty");
....
}
работи 100% добре.
Но не ми харесва как трябва да предоставя името на променливата, само за да помогна на моето съобщение за изключение.
Чудех се дали е възможно да се преработи методът за разширение, така че да може да се извика така...
qwerty.ThrowIfArgumentIsNull();
и автоматично установява, че името на променливата е "qwerty" и следователно го използва като стойност за ArgumentNullException.
Възможен? Предполагам, че отражението може да направи това?