2
내가 같은 박스 값을 가질 때 :유형을 주어진 유형으로 변경할 수 있습니까?
이object input = 31.33M;
나는이 방법 컨버터블 형태로 변환 할 수 있습니다 :
public static T ToType<T>(object value)
{
return (T) Convert.ChangeType(value,typeof (T));
}
그래서 모두 :
Console.WriteLine (ToType<double>(input));
Console.WriteLine (ToType<decimal>(input));
이
를 반환합니다31.33 //as double
31.33 //as decimal
(정밀도 문제는 제쳐두 자.)
오케이.
하지만 지금은 나는 주어진 유형이 상황 (나는 방법 설명 및 인수 유형을 노출 WebAPI를 사용하고 있습니다) 에 직면하고있다.
그래서 지금은이 :
Type SomeoneSaysMyTypeIs=typeof(decimal)
하지만 지금 수 없습니다 사용 제네릭 형식 인수를.
질문
내가 일하는 내 방법을 향상시킬 수있는 방법 : if's
의 많은 (의사 코드)
ToType(SomeoneSaysMyTypeIs,input); //return type :decimal , not object
내가 찾은 솔루션하지만를 ...
를 그냥 추가, 당신은 분명이'object'를 반환하기 때문에 필요한 제네릭 형식'T '알 수 없습니다 - 당신은 단지'Type' 타입의 변수를 가지고 있습니다 – Rhumborl
@Rhumborl : 그것은 불가능합니다, 그렇게 할 수있는 감각을 가지지 않습니다 :). –
번. 개체가 아닌 십진수 반환 형식이어야합니다! –