2011-11-22 2 views
-6

동적 매개 변수가 있고 동적 결과를 반환하는 메서드가 있습니다. 내 메서드에 null, int, string 등을 전달할 수 있기를 원합니다. 그러나 모든 상황에서 "NotSupportedException"이 발생합니다.C#에서 null에 대한 동적 값 확인

MyMethod(null); // Causes problems (Should resolve to ref type?) 
MyMethod(0); // Causes problems (Should resolve to int type) 

public dynamic MyMethod(dynamic b) 
{ 
    if (value != null) {...}// Throws NotSupportedExpception 
    if (value != 0) {...} // Throws NotSupportedExpception 
} 
+5

왜 동적 사용 하시겠습니까 출력

static void Main(string[] args) { MyMethod(null); MyMethod(0); } public static dynamic MyMethod(dynamic value) { if (value != null) Console.WriteLine("Value is not null."); if (value != 0) Console.WriteLine("Value is not 0."); return value; } 

하고있다? – Joe

+5

"가치"란 무엇이며 "b"가 사용되지 않는 이유는 무엇입니까? 이 코드는 매우 혼란 스럽습니다. –

+5

당신의 방법은 나를 위해 잘 작동하는 것 같다. (나는'b'를'value'로 이름을 바꾸었다.) 예외의 호출 스택은 무엇입니까? – svick

답변

5

그냥

Value is not 0. 
Value is not null. 
+0

최근에 VS2010에서 모든 예외 (Debug-> Exceptions)를 위반하여 문제가 발생했습니다. 실행되는 예외는 "공용 언어 런타임 예외"에서 "System.NotSupportedException"입니다. 이 예외 이후에 계속 진행하거나 코드를 해제하면 코드가 올바르게 실행됩니다. 모든 예외가 나쁜 것이 아니며 해결해야합니까? 내가 설명한대로 다른 모든 사람들이 예외적 인 예외를 밟을 수 있습니까? – aidesigner