매개 변수의 값을 검사하는 함수를 만들고 싶었습니다. null 인 경우 매개 변수의 유형을 기준으로 값을 설정해야합니다. 그렇지 않으면 매개 변수의 값을 반환해야합니다. 입니다.
여기 제가 시험해 보았습니다.
public static T ConvertNull<T>(T obj)
{
if (String.IsNullOrEmpty(obj.ToString()))
{
HttpContext.Current.Response.Write("COMING IN");
if (typeof(T) == typeof(Int32))
{
return (T)Convert.ChangeType(0, typeof(T));
}
else if (typeof(T) == typeof(DateTime))
{
return (T)Convert.ChangeType(DateTime.Now, typeof(T));
}
else
{
return (T)Convert.ChangeType(String.Empty, typeof(T));
}
}
else
{
HttpContext.Current.Response.Write("ELSE");
return obj;
}
}
는 그러나 문제는 항상 ELSE 절에 가서 정크 값을 반환합니다.
누구나 위 기능을 잘못 설명 할 수 있습니까?
'Int'와 'DateTime'은 Null을 허용하지 않습니다. 그것들이 null 일 수는 없습니다. 빈 문자열을 임의의 다른 유형 인'T'로 변환하면 성공할 확률도 높습니다. 세계의 대부분의 타입은'IConvertable'을 구현하지 않습니다. 또한'null' 인 경우에는 ToString을 호출 할 때 예외가 발생합니다. – Servy