나는 다음과 같은 확장 방법이 있습니다이 확장 방법을 리팩토링 할 수 있습니까?
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();
와 자동 변수의 이름을 따라서 '쿼티'와 것을 파악 이 값을 ArgumentNullException의 값으로 사용합니다.
가능합니까? 성찰이 이것을 할 수 있다고 가정하고 있습니까?
참조 http://stackoverflow.com/questions/869610/c-resolving-a-parameter-name-at-runtime/869629#869629 –
http://msmvps.com/blogs/jon_skeet/archive/를 확인하십시오. 2009/12/09/quot-magic-quot-null-argument-testing.aspx - blogged :) –
이것은 매우 간단한 문제에 대한 매우 어려운 해결책이라고 생각합니다. Visual Studio를 사용한다면 코드 스 니펫을 사용하여 매우 쉽게 만들 수 있습니다.) –